On Mon, 4 Apr 2005, Luc Pionchon wrote:

>Hello,
>
>On Mon, 2005-04-04 at 15:02 +0100, Dan Bolser wrote:
>> Hi, 
>> 
>> I searched the archives for 'template' but didn't find exactly what I was
>> looking for.
>> 
>> My idea is to create a basic diagram (a template) with several 'fields' or
>> variables. Then I need some way to read something like a tab delimited
>> file and produce one diagram from each 'record' in that file.
>> 
>> The value for each field would be taken from the file and used to
>> generate a diagram from the template.
>> 
>> Here is a simple example of what I have in mind
>> 
>> +-----+                 +-----+
>> | $f1 |  <--- $f2 --->  | $f3 |
>> +-----+                 +-----+
>> 
>> Where $f1 is the text inside the first box, $f2 is the text on an arrow
>> and $f3 is the text inside the second box. Then using a file
>> something like...
>> 
>> f1   f2      f3
>> A    99      B
>> C    2       D
>> DAN  LIKES   DIA
>> 
>> I would create 3 diagrams mail merge style.
>> 
>> I guess this is easy for someone who knows what they are doing with XML,
>> but I am not that person.
>> 
>> Can someone advise?
>> 
>> It would be really great to include a little tool with dia to help do this
>> kind of 'templating', as their are lots of little things that you could
>> add to such a system if it were a sub-project rather than a one off hack.
>> 
>> I would find this really useful because I have about 150 little schematics
>> to draw, and while I would love to use dia I am using GD. (admitedly if I
>> knew XML better I could generate the dia file directly, but I don't know
>> how.)
>
>Basically, you do not need to know XML. Just create your diagram, and
>use you variable names instead of the text. Then save your diagram
>(uncompressed, for text processing). Now use your favourite text
>processor (sed, cpp, perl, etc...) and just replace your variable names
>by their values.

Hi!

Yeah, I realized it was not 'too' complex... You could even use word to
really do a mail merge ;)


>Note 1: you must however take care that your variable name do not exist
>in dia syntax. Using a namespace prefix like BOLSER_VAR_ may be a good
>thing to do.

I am using "var_variable-name_var". I guess that should be OK?


>Note 2: You cannot ensure that the layout of your template will be
>respected, because you cannot know beforehand the lenght of your values.
>And AFAIK some dia objects store their dimensions (is that right?). So
>the resuluts may not be wonderful with complex layout templates.

Yeah, this is where I thought the complexity would come in. Using an XSLT
I guess you could generate a new diagram using the 'rules' of the
transformation, given the variables (a bit like an auto layout), but that
is totally beyond me.

It dosn't matter, because I am just using labels (of determinate maximum
length), which dance around on a fixed diagram. What I would really like
to do is dynamically scale parts of the diagram given the values in my
database, for example, the width of an arrow could represent the size of a
variable, or the size of a box (i.e. a database schematic showing the
number of records in the table by the size of the box). For this reason a
tool to hook up variables and then play around with the possible values to
observe the effects would be ace - but a lot of work for a developer (i.e.
not me).


>One similar thing that works out of the box is to insert CVS keywords
>into your diagram that you store in a CVS repository, on commit cvs
>replaces the keywords by their value. So "$Date$" will be replaced by
>"$Date 2005/04/04 14:57:32$"

Cool :) So you can auto timestamp your diagrams!

Anywhere to post the diagrams and script when I am done? Perhaps it could
be usefull for someone.

Cheers,
Dan.


>
>
>luc
>

_______________________________________________
Dia-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/dia-list
FAQ at http://www.gnome.org/projects/dia/faq.html
Main page at http://www.gnome.org/projects/dia

Reply via email to