gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] navidoc/navidoc directives/mp.py modules/imagem...


From: Asko Soukka
Subject: [Gzz-commits] navidoc/navidoc directives/mp.py modules/imagem...
Date: Tue, 17 Jun 2003 08:04:05 -0400

CVSROOT:        /cvsroot/navidoc
Module name:    navidoc
Branch:         
Changes by:     Asko Soukka <address@hidden>    03/06/17 08:04:04

Modified files:
        navidoc/directives: mp.py 
        navidoc/modules: imagemap.py metalink.py 
        navidoc/mp     : __init__.py 
        navidoc/writers: xhtml11.py 

Log message:
        close every open file to avoid 'too many open files', ultimate 
javascript upgrade

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/navidoc/directives/mp.py.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/navidoc/modules/imagemap.py.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/navidoc/modules/metalink.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/navidoc/mp/__init__.py.diff?tr1=1.40&tr2=1.41&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/navidoc/writers/xhtml11.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: navidoc/navidoc/directives/mp.py
diff -u navidoc/navidoc/directives/mp.py:1.9 
navidoc/navidoc/directives/mp.py:1.10
--- navidoc/navidoc/directives/mp.py:1.9        Wed Jun  4 08:19:18 2003
+++ navidoc/navidoc/directives/mp.py    Tue Jun 17 08:04:04 2003
@@ -19,7 +19,7 @@
 # MA  02111-1307  USA
 # 
 
-# $Id: mp.py,v 1.9 2003/06/04 12:19:18 humppake Exp $
+# $Id: mp.py,v 1.10 2003/06/17 12:04:04 humppake Exp $
 
 #
 # Written by Asko Soukka, Benja Fallenstein
@@ -190,7 +190,8 @@
     refer = slashify(config.working_directory)+config.output_filename
     refers_filepath = 
slashify(config.mp_directory)+diagram+config.midfix+".refers"
     if (os.path.isfile(refers_filepath)):
-        old_refers = open(refers_filepath, "r").read()
+        old_refers_file = open(refers_filepath, "r")
+        old_refers = old_refers_file.read()
         if old_refers.find(config.output_filename) == -1:
             if to_top:
                 refers = open(refers_filepath, "w")
@@ -200,6 +201,7 @@
                 refers = open(refers_filepath, "a")
                 refers.write(refer+"\n")
                 refers.close()
+        old_refers_file.close()
     else:
         refers = open(refers_filepath, "a")
         refers.write(refer+"\n")
Index: navidoc/navidoc/modules/imagemap.py
diff -u navidoc/navidoc/modules/imagemap.py:1.10 
navidoc/navidoc/modules/imagemap.py:1.11
--- navidoc/navidoc/modules/imagemap.py:1.10    Fri Jun 13 09:30:27 2003
+++ navidoc/navidoc/modules/imagemap.py Tue Jun 17 08:04:04 2003
@@ -19,7 +19,7 @@
 # MA  02111-1307  USA
 # 
 
-#$Id: imagemap.py,v 1.10 2003/06/13 13:30:27 humppake Exp $
+#$Id: imagemap.py,v 1.11 2003/06/17 12:04:04 humppake Exp $
 
 #
 # Written by Asko Soukka
@@ -53,17 +53,41 @@
         elif os.path.isfile(slashify(path)+entry):
             embed_imagemap(slashify(path)+entry)
 
+def embed_javascript(filepath):
+    html_file = open(filepath)
+    html = html_file.read()
+    html_file.close()
+
+    if html.find('function setImg') == -1:
+        insert = html.upper().find('</HEAD>')
+        out = open(filepath, "w")            
+        out.write(html[:insert]);
+        out.write("""
+<script language="JavaScript">
+<!-- Begin JavaScript
+function setImg(img_id, img_src, img_usemap) {
+document[img_id].setAttribute("src", img_src);
+document[img_id].setAttribute("usemap", img_usemap);
+}
+// End -->
+</script>
+""")
+        out.write(html[insert:])
+        out.close()
+
 def embed_imagemap(filepath):
     dbg('Checking %s for imagemapping diagrams' % (filepath))
 
     config.working_directory = os.path.normpath(os.path.dirname(filepath))
     config.input_filename = os.path.basename(filepath)
     config.output_filename = os.path.basename(filepath)
+
+    embed_javascript(filepath)
     
     htmlfile = open(filepath)
     html = htmlfile.read()
     htmlfile.close()
-
+    
     insert = html.find('<img _uml="')
     while insert > -1:
         diagram = html[insert+11:html.find('"', insert+11)]
@@ -81,13 +105,20 @@
         else:
             out.close()
             create_uml(diagram, context)
+            create_uml(diagram, context+'_implicit', scale=0.5)
             out = open(filepath, "w")            
             out.write(html[0:insert]);
             dbg_navidoc("Mapping diagram %s within %s" % (diagram, filepath))
             imgmap = get_imagemap(diagram, context)
+            imgmap_implicit = get_imagemap(diagram, context+'_implicit', 
scale=0.5, id_postfix="_implicit")
             dbg("Diagram %s imagemap: %s" % (diagram, "\n"+str(imgmap)))
             out.write("\n"+'<a id="%s"></a>' %(diagram) + "\n")
             out.write(imgmap)
+            out.write(imgmap_implicit)
+            if len(context) > 0: context = '_'+context
+            out.write('<img 
src="'+slashify(relative_path(config.working_directory, config.mp_directory)) \
+                  +diagram+context+config.midfix+'.png" usemap="#' \
+                  +diagram+'_map" alt="'+diagram+'" id="'+diagram+'_img" 
/>'+"\n")
             html = html[html.find(">", insert)+1:len(html)]
         out.write(html)
         out.close()
@@ -117,6 +148,8 @@
     config.input_filename = os.path.basename(filepath)
     config.output_filename = os.path.basename(filepath)
 
+    embed_javascript(filepath)
+
     htmlfile = open(filepath)
     html = htmlfile.read()
     htmlfile.close()
@@ -165,19 +198,23 @@
         if context.endswith(config.midfix+'.html'):
             context = context[0:len(context)-(len(config.midfix)+5)]
         if context.endswith(".html"): context = context[0:len(context)-5]
-        context = context+'_implicit'
-
-        create_uml(diagram, context, scale=0.5)
+        create_uml(diagram, context)
+        create_uml(diagram, context+'_implicit', scale=0.5)
         out = open(filepath, "w")            
         out.write(html[0:insert]);
         out.close()
         out = open(filepath, "w")            
         out.write(html[0:insert]);
         dbg("Mapping diagram %s within %s" % (diagram, filepath))
-        imgmap = get_imagemap(diagram, context, scale=0.5, 
id_postfix="_implicit")
-        dbg("Diagram %s imagemap: %s" % (diagram, "\n"+str(imgmap)))
+        imgmap = get_imagemap(diagram, context)
+        imgmap_implicit = get_imagemap(diagram, context+'_implicit', 
scale=0.5, id_postfix="_implicit")
+        dbg("Diagram %s imagemap: %s" % (diagram, "\n"+str(imgmap_implicit)))
         out.write(imgmap)
-
+        out.write(imgmap_implicit)
+        if len(context) > 0: context = '_'+context
+        out.write('<img 
src="'+slashify(relative_path(config.working_directory, config.mp_directory)) \
+                  +diagram+context+'_implicit'+config.midfix+'.png" usemap="#' 
\
+                  +diagram+'_implicit_map" alt="'+diagram+'" 
id="'+diagram+'_img" />'+"\n")
         html = html[insert_left:len(html)]
         out.write(html)
         out.close()
@@ -188,7 +225,9 @@
     config.link_base_directory = None
 
 def is_linked(diagram):
-    log = 
open(slashify(config.mp_directory)+diagram+config.midfix+'.mp.log').read()  
+    log_file = 
open(slashify(config.mp_directory)+diagram+config.midfix+'.mp.log')
+    log = log_file.read()
+    log_file.close()
     log = log.replace("\n",'') # MetaPost (mpost) splits lines awkwardly in 
the log.
     
     # Grep all linked areas from log file.
@@ -201,7 +240,9 @@
 def get_imagemap(diagram, context, scale=1.0, id_postfix=''):
     if len(context) > 0: context = '_'+context
 
-    log = 
open(slashify(config.mp_directory)+diagram+context+config.midfix+'.mp.log').read()
  
+    log_file = 
open(slashify(config.mp_directory)+diagram+context+config.midfix+'.mp.log')
+    log = log_file.read()
+    log_file.close()
     log = log.replace("\n",'') # MetaPost (mpost) splits lines awkwardly in 
the log.
     
     links = []
@@ -223,11 +264,9 @@
             link.map_corners(bbox.map_point)
 
         imgmap = "\n"+'<map id="'+diagram+id_postfix+'_map" 
name="'+diagram+id_postfix+'_map">'+"\n" \
-                 +"\n".join([link.imgmapanchor(scale=scale, diagram=diagram) 
for link in links]) \
-                 +'</map>'+"\n" \
-                 +'<img 
src="'+slashify(relative_path(config.working_directory, config.mp_directory)) \
-                 +diagram+context+config.midfix+'.png" 
usemap="#'+diagram+id_postfix+'_map" alt="'+diagram+id_postfix+'" />'+"\n"
-
+                 +"\n".join([link.imgmapanchor(scale=scale, diagram=diagram, 
context=context) \
+                             for link in links]) \
+                 +'</map>'+"\n"
     return imgmap
 
 def get_targets(diagram):
@@ -237,7 +276,9 @@
     """
     targets = []
 
-    log = 
open(slashify(config.mp_directory)+diagram+config.midfix+'.mp.log').read()  
+    log_file = 
open(slashify(config.mp_directory)+diagram+config.midfix+'.mp.log')
+    log = log_file.read()
+    log_file.close()
     log = log.replace("\n",'') # MetaPost (mpost) splits lines awkwardly in 
the log.
 
     # Grep all linked areas from log file.
Index: navidoc/navidoc/modules/metalink.py
diff -u navidoc/navidoc/modules/metalink.py:1.4 
navidoc/navidoc/modules/metalink.py:1.5
--- navidoc/navidoc/modules/metalink.py:1.4     Mon Apr  7 11:58:00 2003
+++ navidoc/navidoc/modules/metalink.py Tue Jun 17 08:04:04 2003
@@ -19,7 +19,7 @@
 # MA  02111-1307  USA
 # 
 
-#$Id: metalink.py,v 1.4 2003/04/07 15:58:00 humppake Exp $
+#$Id: metalink.py,v 1.5 2003/06/17 12:04:04 humppake Exp $
 
 #
 # Written by Asko Soukka
@@ -47,7 +47,9 @@
             postprocess(slashify(path)+entry)
 
         if os.path.isfile(slashify(path)+entry):
-            html = open(slashify(path)+entry).read()
+            html_file = open(slashify(path)+entry)
+            html = html_file.read()
+            html_file.close()
 
             insert = html.lower().find("</head>")
             out = open(slashify(path)+entry, "w")
Index: navidoc/navidoc/mp/__init__.py
diff -u navidoc/navidoc/mp/__init__.py:1.40 navidoc/navidoc/mp/__init__.py:1.41
--- navidoc/navidoc/mp/__init__.py:1.40 Tue Jun 17 05:07:30 2003
+++ navidoc/navidoc/mp/__init__.py      Tue Jun 17 08:04:04 2003
@@ -19,7 +19,7 @@
 # MA  02111-1307  USA
 # 
 
-# $Id: __init__.py,v 1.40 2003/06/17 09:07:30 humppake Exp $
+# $Id: __init__.py,v 1.41 2003/06/17 12:04:04 humppake Exp $
 
 #
 # Written by Tuomas Lukka, Asko Soukka
@@ -184,7 +184,9 @@
         raise MetapostException(slashify(config.mp_directory) \
                                 +diagram+config.midfix+'.mp'+' not found')
     
-    s = open(slashify(config.mp_directory)+diagram+config.midfix+'.uml').read()
+    s_file = open(slashify(config.mp_directory)+diagram+config.midfix+'.uml')
+    s = s_file.read()
+    s_file.close()
     l = navidoc.util.parser.parse_indented(s)
     m = navidoc.parser.ElementList(l)
 
@@ -252,7 +254,10 @@
                   slashify(config.mp_directory)+diagram+midfix+'.eps')
         return
 
-    log = 
open(slashify(config.mp_directory)+diagram+config.midfix+'.mp.log').read()
+    log_file = 
open(slashify(config.mp_directory)+diagram+config.midfix+'.mp.log')
+    log = log_file.read()
+    log_file.close()
+    
     if log.find("\n"+'!') != -1:
         dbg_navidoc('[mp] Converting diagram %s failed.' % (diagram))
         dbg_fail('An error was found from MetPost log when convertin diagram 
%s. The log is shown below.' % (diagram))
@@ -336,25 +341,25 @@
             )]
         dbg("Mapped corners: "+str(self.corners))
 
-    def imgmapanchor(self, scale=1.0, diagram=''):
-        #If we have a link with empty target and empty title, let's link
-        #it to the diagram itself, if diagram name provided.
-        if self.title == '' and diagram: self.title = 
diagram+config.midfix+'.png'
-        if self.target == '' and diagram:
-            self.target = slashify(relative_path(config.working_directory, 
config.mp_directory))+diagram+config.midfix+'.png'
-        if self.target.endswith('.png'):
-            target = '_plain'
-            diagram = ''
+    def imgmapanchor(self, scale=1.0, diagram='', context=''):
+        # Adding javascript thingy, when target not defined
+        if context.endswith('_implicit'):
+            id_postfix = ''
+            context = context[:len(context)-len('_implicit')]
         else:
-            target = '_top'
-            diagram = '#'+diagram
+            id_postfix = '_implicit'
+            context = context + '_implicit'
+            
+        if self.target == '' and diagram and context:
+            self.target = "javascript:setImg('"+diagram+"_img', 
'"+slashify(relative_path(config.working_directory, 
config.mp_directory))+diagram+context+config.midfix+".png', 
'#"+diagram+id_postfix+"_map')"
+
+        if not self.target.startswith('javascript'): diagram = '#'+diagram
+        else: diagram = ''
 
         return """<area href="%s%s" shape="rect" coords="%s" target="%s" 
title="%s" alt="%s" />""" \
                % (self.target, diagram,
-                  ",".join(["%s"%(int(c*scale)) for c in self.corners]),
-                  target, 
-                  self.title,
-                  self.title)
+                  ",".join(["%s"%(int(c*scale)) for c in self.corners]), 
'_top',
+                  self.title, self.title)
 
 class MetapostException(Exception):
     def __init__(self, value):
Index: navidoc/navidoc/writers/xhtml11.py
diff -u navidoc/navidoc/writers/xhtml11.py:1.3 
navidoc/navidoc/writers/xhtml11.py:1.4
--- navidoc/navidoc/writers/xhtml11.py:1.3      Mon May 26 12:20:20 2003
+++ navidoc/navidoc/writers/xhtml11.py  Tue Jun 17 08:04:04 2003
@@ -19,7 +19,7 @@
 # MA  02111-1307  USA
 # 
 
-# $Id: xhtml11.py,v 1.3 2003/05/26 16:20:20 humppake Exp $
+# $Id: xhtml11.py,v 1.4 2003/06/17 12:04:04 humppake Exp $
 
 #
 # Modified by Asko Soukka
@@ -27,8 +27,8 @@
 
 # Author: David Goodger (hacked by Navidoc to create xhtml11)
 # Contact: address@hidden
-# Revision: $Revision: 1.3 $
-# Date: $Date: 2003/05/26 16:20:20 $
+# Revision: $Revision: 1.4 $
+# Date: $Date: 2003/06/17 12:04:04 $
 # Copyright: This module has been placed in the public domain.
 
 """
@@ -192,7 +192,9 @@
         self.head = []
         if settings.embed_stylesheet:
             stylesheet = self.get_stylesheet_reference(os.getcwd())
-            stylesheet_text = open(stylesheet).read()
+            stylesheet_file = open(stylsheet)
+            stylesheet_text = stylesheet_file.read()
+            stylesheet_file.close()
             self.stylesheet = [self.embedded_stylesheet % stylesheet_text]
         else:
             stylesheet = self.get_stylesheet_reference()




reply via email to

[Prev in Thread] Current Thread [Next in Thread]