[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/metacode umlrst.py umltool.py
From: |
Asko Soukka |
Subject: |
[Gzz-commits] gzz/metacode umlrst.py umltool.py |
Date: |
Thu, 19 Dec 2002 11:13:20 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Asko Soukka <address@hidden> 02/12/19 11:13:18
Modified files:
metacode : umlrst.py umltool.py
Log message:
bi-directional first rev
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/metacode/umlrst.py.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/metacode/umltool.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
Patches:
Index: gzz/metacode/umlrst.py
diff -u gzz/metacode/umlrst.py:1.8 gzz/metacode/umlrst.py:1.9
--- gzz/metacode/umlrst.py:1.8 Thu Dec 19 09:30:00 2002
+++ gzz/metacode/umlrst.py Thu Dec 19 11:13:18 2002
@@ -96,7 +96,10 @@
docutils.parsers.rst.directives._directives['uml-refer'] = uml_refer_directive
def create_diagram(diagram):
- umltool.run(diagram)
+ return (umltool.run(diagram))
+
+def create_diagram(diagram_orig, diagram_copy="", zoom=100):
+ return (umltool.run(diagram_orig, diagram_copy, zoom))
def embed_diagram(path):
if not umltool.settings.has_key('to_root'):
@@ -120,8 +123,12 @@
assert
(os.path.isfile(umltool.settings['tmpdir']+"/"+prefix+".uml")\
and
os.path.isfile(umltool.settings['tmpdir']+"/"+prefix+".mp")),\
"file "+ prefix+".uml or "+prefix+".mp not found"
- print "Embedding %s into %s" % (name, path)
- create_diagram(prefix)
+ print "Embedding %s into %s" % (prefix, path)
+
+ implicit_targets = create_diagram(prefix)
+ for target in implicit_targets:
+ embed_implicit(name, target)
+
assert
(os.path.isfile(umltool.settings['tmpdir']+"/"+name+".gen.html")\
and
os.path.isfile(umltool.settings['tmpdir']+"/"+name+".gen.png")),\
"file "+name+".gen.html or "+name+".gen.png not found"
@@ -139,3 +146,48 @@
out.write(html)
out.close()
+def embed_implicit(name, path):
+ """Terrible kludge to embed named diagram into path document
+ with correct imagemap."""
+ tmp = umltool.settings.copy()
+ umltool.set_to_root(path)
+
+ #the second pass - adds uml into html
+ if path.endswith(".rst"): path = path[0:len(path)-4]
+ if os.path.isfile(path+".html"):
+ html = open(path+".html").read()
+ insert = html.upper().find("</H1>")
+ if insert == -1: insert = html.upper().find("</H2>")
+
+ #the same diagram is written only once
+ if html.find("id=\""+name+"\"") == -1 and insert != -1:
+ out = open(path+".html", "w")
+ out.write(html[0:insert+5]);
+
+ #This should work also with non-generated UML-diagrams. Checks
first
+ #for generated and then if non-generated diagram exists.
+ if
(os.path.isfile(umltool.settings['tmpdir']+"/"+name+".gen.uml")):
+ old_prefix = name + ".gen"
+ else: old_prefix = name
+
+ print "Embedding %s into %s" % (name, path)
+
+ new_prefix = name+"_"+path.replace("/","_")
+ create_diagram(old_prefix, new_prefix, 100)
+
+ #Cut&Pastes imagemap into html
+ imgmap =
open(umltool.settings['tmpdir']+"/"+new_prefix+".gen.html").read()
+ out.write("<map id=\""+name+"\" name=\""+name+"\">\n")
+ out.write(imgmap[imgmap.find('>',imgmap.find('<map'))+1:\
+ imgmap.find('</map>')])
+ out.write("</map>\n")
+ out.write("<img "\
+ +"src=\""+umltool.settings['to_tmpdir']+"/"\
+ +new_prefix+".gen.png"\
+ +"\" usemap=\"#"+name+"\" alt=\""+name+"\" />")
+
+ html = html[insert+5:len(html)]
+ out.write(html)
+ out.close()
+
+ umltool.settings = tmp
Index: gzz/metacode/umltool.py
diff -u gzz/metacode/umltool.py:1.6 gzz/metacode/umltool.py:1.7
--- gzz/metacode/umltool.py:1.6 Thu Dec 19 08:46:30 2002
+++ gzz/metacode/umltool.py Thu Dec 19 11:13:18 2002
@@ -662,7 +662,13 @@
mapper(self.corners[2], self.corners[3])
)]
print "Mapped: ", self.corners
- def imgmapanchor(self):
+ def getTarget(self):
+ """Returns jlink's target with "full path",
+ but without .foo postfix."""
+ ts = self.name.split(".")
+ target = (settings['javadoc']+"/"+"/".join(ts))
+ return (target)
+ def imgmapanchor(self, zoom=100):
ts = self.name.split(".")
if re.search("html", ts[-1]):
target = self.name
@@ -675,7 +681,7 @@
+"/".join(ts)
+ ".html")
return """<area href="%s" shape="rect" coords="%s" target="_top"
title="%s" alt="%s" />\n""" % (
- target, ",".join(["%s"%c for c in self.corners]), self.name,
self.name)
+ target, ",".join(["%s"%(int(c*(zoom*0.01))) for c in
self.corners]), self.name, self.name)
def roundDown(x):
@@ -700,7 +706,7 @@
"-xsize", self.w * scale, "-ysize", self.h * scale,
"-xborder", 0, "-yborder", 0]]
-def run(prefix_in, prefix_out=""):
+def run(prefix_in, prefix_out="", zoom=100):
if prefix_out == "": prefix_out = prefix_in
if not prefix_out.endswith(".gen"): prefix_out = prefix_out + ".gen"
@@ -782,8 +788,12 @@
</HTML>
""" % { "prefix_in": prefix_in,
"filename": prefix_out+".png",
- "links": " ".join([l.imgmapanchor() for l in links]) }
+ "links": " ".join([l.imgmapanchor(zoom) for l in links]) }
html = open(path+prefix_out+".html", "w")
html.write(htmlcode)
html.close()
+ targets = []
+ for l in links:
+ targets.append(l.getTarget())
+ return targets