# 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 – &lt;img src='…'/&gt;"/>
 
-    <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;amp;hlasuAno=${hlasuAno}&amp;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 {