xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vincent Hardy <vincent.ha...@sun.com>
Subject Re: Question about SVG and Batik usage - voting system
Date Fri, 10 Jan 2003 10:45:21 GMT
Hello Stefan,

I think SVG can definitely help in your scenario. Here are a few 
examples of things which help:

a. <use>
=========

    In SVG, you can define a template content (typically in a <defs> 
section) and later refer to it in a <use>. For example:

    <defs>
       <g id="chairTemplate">
           <rect x="0" y="0" width="20" height="40" fill="green" />
       </g>
    </defs>

    <use xlink:href="#chairTemplate" x="30" y="30" />
    <use xlink:href="#chairTemplate" x="20" y="130" />
    ...

   Of course, you can make the chair a lot nicer than a green rectangle :-)

b. Support for mixed namespaces.
=================================

    In XML and in SVG in particular, you can mix namespaces. That means 
that you can mix content from different grammars in the same document. 
So, using your example, you could embed the floor definition information 
the way you have expressed it:

<svg onload="init()">
 > <floorplan id="myFloorPlan" xmlns="myNameSpace">
 >     <chair id="1">
 >         <location>...</location>
 >     </char>
 >     <chair id="2">
 >         <location>...</location>
 >     </char>
 >     <wall>
 >         ....
 >     </wall>
 > </floorplan>
</svg>

and then, by script, you can access that <floorplan> information and 
build the graphical content. Something like:

   <script>
function init() {
     var floorplan = document.getElementById("myFloorPlan");
     var chairs = floorplan.getElementsByTagNameNS("myNameSpace", "chair");
     var nChairs = chairs.getLength();
     for (var i=0; i<nChairs; i++) {
        var chair = document.createElementNS(svgNS, "use");
        chair.setAttributeNS(xlinkNS, "xlink:href", "#chairTemplate");
        chair.setAttributeNS(null, "x", ....);
        .....
     }
}

   </script>

Note how the 'onload' attribute on the root <svg> invokes the init() 
function.

This is not quite cut-and-paste code and the use of mixed namespace may 
or may not be a good idea depending on your architecture, but this is 
food for thoughts.

I hope this helps.

In terms of resources, Randy pointed out some very interesting examples 
from Adobe. You'll find a lot of pointers to SVG resources at:

http://www.w3.org/Graphics/SVG.

Vincent.

Stefán Freyr Stefánsson wrote:
> Hello.
> 
> I know that this mailing list should be used for questions regarding the Batik 
> software itself and general SVG questions should go to some W3C mailing list 
> as stated on the Batik web page.  However, the mailing list address given on 
> the Batik web page that is supposed to subscribe to the W3C SVG mailing list 
> seems to be broken.  I did eventually find a mailing list that is supposedly 
> about SVG at the W3C but so far I've seen no signs of life on that list so I 
> hope that you forgive me for asking this question here.
> 
> The problem that I'm facing is that I need to create an application that can 
> show a descriptive overview image of a meeting room (it's actually the 
> chamber of the Icelandic parliament).  This application will be hooked up to 
> a voting system and needs to be able to display accurately the status of 
> votes in the chamber.  For that it needs to display an image of the floor and 
> each seat is represented by a color that indicates how the person that sits 
> there voted.  Now, the tricky part about this is that this floor plan needs 
> to be dynamic...  the number of members of parliament can change (the number 
> and layout of chairs would therefore change too) so there needs to be a way 
> of defining the floor plan without having to build the whole system again.
> 
> So my question is: Would SVG be a good candidate to solve my problem?  Does 
> anybody have other ideas about what technique could be used for this?
> 
> My dream is to have the floor plan in an XML document that describes the 
> layout/location of the seats and maybe even more information such as the 
> locations of walls to give a better impression of the room itself.  An 
> example of the XML document defining the floor plan might be something like:
> <floorplan>
>     <chair id="1">
>         <location>...</location>
>     </char>
>     <chair id="2">
>         <location>...</location>
>     </char>
>     <wall>
>         ....
>     </wall>
> </floor>
> 
> I know that this doesn't conform to the SVG document type (and no... this idea 
> hasn't been fully sculpted even) but I'm just describing what I'm thinking... 
> I will then adopt this idea to the SVG documents if SVG is indeed a viable 
> option to solve this problem.
> 
> Optimally there would be just one document describing the layout of the room, 
> the system would therefore be able to draw up the floor plan by using that 
> document.  The voting system would also read this document and parse out the 
> location of all the "chair" elements and it would read the status of each 
> vote for each of the chairs from the voting system.  It could then create a 
> "layer" where, for example, a chair that votes "yes" is displayed as a green 
> area and a vote of "no" is displayed as red and "pass" is displayed as 
> yellow.  There would also have to be other layers for each seat such as 
> displaying the name of the person sitting in the seat, what party that person 
> is associated with and so on.
> 
> If anybody could give me some pointers on whether SVG would be usable for this 
> situation I'd be very grateful.  I want to stress that I'm not a lazy bum 
> trying to get the solution to my problem here but my first impression of SVG 
> is that it's a rather complicated but powerful tool and I'd just like to know 
> if I'm on the right track by throwing myself in the deep end of the SVG-pool.  
> If anybody knows of anything similar to what I've described, I'd really like 
> to know about it of course :o)
> 
> Kind regards and thanks in advance for any answers.
> Stefan Freyr.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
> For additional commands, e-mail: batik-users-help@xml.apache.org
> 
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-users-help@xml.apache.org


Mime
View raw message