java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag
author František Kučera <franta-hg@frantovo.cz>
Wed Jan 12 16:15:37 2011 +0100 (2011-01-12)
changeset 164 e146e2e3b80b
parent 145 0efefbf5f8b6
permissions -rw-r--r--
Spokojenost: soulad kuřáckosti podniku s výsledky hlasování.
     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 		  version="2.0">
     7 
     8 	<jsp:directive.attribute name="podnik" type="java.lang.Integer" required="true" description="ID podniku"/>
     9 	<jsp:directive.attribute name="hlasuAno" type="java.lang.Integer" required="true" description="počet hlasů pro ano – aby se tu kouřilo"/>
    10 	<jsp:directive.attribute name="hlasuNe" type="java.lang.Integer" required="true" description="počet hlasů pro ne – aby se tu nekouřilo"/>
    11 	<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 – &lt;img src='…'/&gt;"/>
    12 
    13 	<!-- výchozí hodnota -->
    14 	<c:if test="${svgUvnitrXhtml == null}">
    15 		<c:set var="svgUvnitrXhtml" value="${true}"/>
    16 	</c:if>
    17 
    18 	<c:choose>
    19 		<c:when test="${svgUvnitrXhtml}">
    20 			<svg:svg xmlns:svg="http://www.w3.org/2000/svg"
    21 					 xmlns:xlink="http://www.w3.org/1999/xlink"
    22 					 version="1.1" baseProfile="full"
    23 					 width="200" height="200">
    24 
    25 
    26 				<svg:style type="text/css">
    27 			rect.ne {
    28 			fill:  url(#ne_prechod_${podnik});
    29 			stroke: black;
    30 			}
    31 			rect.ano {
    32 			fill: url(#ano_prechod_${podnik});
    33 			stroke: black;
    34 			}
    35 
    36 			a:hover rect.ano, a:hover rect.ne {
    37 			fill: url(#zvyrazneny_prechod_${podnik});
    38 			}
    39 
    40 			a:hover text {
    41 			fill: green;
    42 			}
    43 
    44 			line.ramecek {
    45 			stroke: black;
    46 			stroke-width: 2;
    47 			}
    48 
    49 
    50 			rect.pozadi {
    51 			fill: url(#pozadi_prechod_${podnik});
    52 			}
    53 
    54 			text {
    55 			font-size: 12px;
    56 			font-family: Sans;
    57 			}
    58 
    59 				</svg:style>
    60 
    61 				<!-- pozadí – přechod -->
    62 				<svg:defs>
    63 					<svg:linearGradient id="pozadi_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
    64 						<svg:stop offset="20%" style="stop-color:rgb(245,245,255); stop-opacity:0.5"/>
    65 						<svg:stop offset="100%" style="stop-color:silver; stop-opacity:0.8"/>
    66 					</svg:linearGradient>
    67 				</svg:defs>
    68 
    69 				<!-- nekuřácký graf – přechod -->
    70 				<svg:defs>
    71 					<svg:linearGradient id="ne_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
    72 						<svg:stop offset="0%" style="stop-color:white; stop-opacity:1"/>
    73 						<svg:stop offset="100%" style="stop-color:blue; stop-opacity:1"/>
    74 					</svg:linearGradient>
    75 				</svg:defs>
    76 
    77 				<!-- zvýrazněný graf – přechod -->
    78 				<svg:defs>
    79 					<svg:linearGradient id="zvyrazneny_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
    80 						<svg:stop offset="0%" style="stop-color:white; stop-opacity:1"/>
    81 						<svg:stop offset="100%" style="stop-color:green; stop-opacity:1"/>
    82 					</svg:linearGradient>
    83 				</svg:defs>
    84 
    85 				<!-- kuřácký graf – přechod -->
    86 				<svg:defs>
    87 					<svg:linearGradient id="ano_prechod_${podnik}" x1="0%" y1="0%" x2="100%" y2="100%">
    88 						<svg:stop offset="0%" style="stop-color:white; stop-opacity:1"/>
    89 						<svg:stop offset="100%" style="stop-color:red; stop-opacity:1"/>
    90 					</svg:linearGradient>
    91 				</svg:defs>
    92 
    93 				<!-- pozadí a linka -->
    94 				<svg:rect x="0" y="0" width="200" height="200" class="pozadi"/>
    95 				<svg:line x1="10" y1="180" x2="190" y2="180" class="ramecek"/>
    96 
    97 				<!-- nadpis grafu -->
    98 				<svg:text x="60" y="20"><fmt:message key="hlasovani.graf.nadpis"/>:</svg:text>
    99 
   100 				<!-- žádné hlasy -->
   101 				<c:if test="${hlasuAno == 0 &amp;&amp; hlasuNe == 0}">
   102 					<svg:text x="30" y="100"><fmt:message key="hlasovani.graf.zadneHlasy"/></svg:text>
   103 				</c:if>
   104 
   105 				<!-- vypočteme si výšky sloupců grafu -->
   106 				<c:set var="hlasuNeVyska" value="${150*hlasuNe/(hlasuAno+hlasuNe)}"/>
   107 				<c:set var="hlasuAnoVyska" value="${150*hlasuAno/(hlasuAno+hlasuNe)}"/>
   108 
   109 				<!-- nekuřáci -->
   110 				<fmt:message key="hlasovani.graf.popisSloupce" var="hlasuNeLokalizace">
   111 					<fmt:param value="${hlasuNe}"/>
   112 				</fmt:message>
   113 				<svg:a xlink:href="javascript:hlasovani.hlasuj(${podnik}, false);" xlink:title="${hlasuNeLokalizace}">
   114 					<svg:text x="30" y="195" class="ne"><fmt:message key="hlasovani.graf.nekourit"/></svg:text>
   115 					<svg:rect x="30" y="${180 - hlasuNeVyska}" width="50" height="${hlasuNeVyska}" class="ne"/>
   116 				</svg:a>
   117 
   118 				<!-- kuřáci -->
   119 				<fmt:message key="hlasovani.graf.popisSloupce" var="hlasuAnoLokalizace">
   120 					<fmt:param value="${hlasuAno}"/>
   121 				</fmt:message>
   122 				<svg:a xlink:href="javascript:hlasovani.hlasuj(${podnik}, true);" xlink:title="${hlasuAnoLokalizace}">
   123 					<svg:text x="130" y="195" class="ano"><fmt:message key="hlasovani.graf.kourit"/></svg:text>
   124 					<svg:rect x="120" y="${180 - hlasuAnoVyska}" width="50" height="${hlasuAnoVyska}" class="ano"/>
   125 				</svg:a>
   126 			</svg:svg>
   127 		</c:when>
   128 		<c:otherwise>
   129 			<object data="hlasovani-svg.jsp?podnik=${podnik}&amp;amp;hlasuAno=${hlasuAno}&amp;amp;hlasuNe=${hlasuNe}" type="image/svg+xml"/>
   130 		</c:otherwise>
   131 	</c:choose>
   132 
   133 </jsp:root>