/[navidoc]/navidoc/navidoc/mp/__init__.py
ViewVC logotype

Diff of /navidoc/navidoc/mp/__init__.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by humppake, Thu Mar 27 11:56:21 2003 UTC revision 1.6 by humppake, Fri Mar 28 13:08:57 2003 UTC
# Line 27  Line 27 
27    
28  __docformat__ = 'reStructuredText'  __docformat__ = 'reStructuredText'
29    
 import os, os.path  
   
30  import config  import config
31    
32  import navidoc.link  import os, os.path
33    import navidoc.link, navidoc.parser
34    
35  from navidoc.utils.path import *  from navidoc.utils.path import *
 from navidoc.parser import NamedElement  
36    
37  dbg = config.dbg.shorthand('mp')  dbg = config.dbg.shorthand('mp')
38  dbg_fail = config.dbg.shorthand('mp.fail')  dbg_fail = config.dbg.shorthand('mp.fail')
# Line 47  def link_draw_code(self, target, title, Line 45  def link_draw_code(self, target, title,
45          else: return 'showfocus("'+target+'", '+title+', ('+box+'));'          else: return 'showfocus("'+target+'", '+title+', ('+box+'));'
46  navidoc.link.Link.draw_code = link_draw_code  navidoc.link.Link.draw_code = link_draw_code
47    
48  class NamedMPElement(NamedElement):  class MetaPostElement(navidoc.parser.NamedElement):
49      def repl(self, s):      def repl(self, s):
50          s = s.replace("%%", self.var)          s = s.replace("%%", self.var)
51          s = s.replace("%name%", self.name)          s = s.replace("%name%", self.name)
# Line 60  class NamedMPElement(NamedElement): Line 58  class NamedMPElement(NamedElement):
58              """              """
59          return self.repl(s)          return self.repl(s)
60    
61  class SimpleElement(NamedMPElement):  class SimpleElement(MetaPostElement):
62      def __init__(self, var, s, list):      def __init__(self, var, s, list):
63          dbg("Simple element: %s %s %s" % (self, s, list))          dbg("Simple element: %s %s %s" % (self, s, list))
64          self.var = var or s          self.var = var or s
# Line 70  class SimpleElement(NamedMPElement): Line 68  class SimpleElement(NamedMPElement):
68  def create_uml(diagram, extension='', scale=1.0):  def create_uml(diagram, extension='', scale=1.0):
69      """      """
70      """      """
71      if not os.path.isfile(_slashify(config.mp_directory)+diagram+'.gen.uml'):      if not os.path.isfile(slashify(config.mp_directory)+diagram+'.gen.uml'):
72          raise MetapostException(_slashify(config.mp_directory)+diagram+'.gen.uml'+' not found')          raise MetapostException(slashify(config.mp_directory)+diagram+'.gen.uml'+' not found')
73      if not os.path.isfile(_slashify(config.mp_directory)+diagram+'.gen.mp'):      if not os.path.isfile(slashify(config.mp_directory)+diagram+'.gen.mp'):
74          raise MetapostException(_slashify(config.mp_directory)+diagram+'.gen.mp'+' not found')          raise MetapostException(slashify(config.mp_directory)+diagram+'.gen.mp'+' not found')
75            
76      s = open(_slashify(config.mp_directory)+diagram+'.gen.uml').read()      s = open(slashify(config.mp_directory)+diagram+'.gen.uml').read()
77      l = parseIndented(s)      l = parseIndented(s)
78      m = mplist(l)      m = mplist(l)
79    
80      if len(extension) > 0: extension = '_'+extension      if len(extension) > 0: extension = '_'+extension
81    
82      dir = _slashify(config.mp_directory)      dir = slashify(config.mp_directory)
83      gen1 = open(dir+diagram+extension+'.gen.mp.1', 'w')      gen1 = open(dir+diagram+extension+'.gen.mp.1', 'w')
84      gen1.write(m.setupCode()+'\n')      gen1.write(m.setupCode()+'\n')
85      gen1.close()      gen1.close()
# Line 118  def mp2png(diagram, scale=1.0): Line 116  def mp2png(diagram, scale=1.0):
116      dbg(syscmd)      dbg(syscmd)
117      os.system('cd '+config.mp_directory+';'+syscmd)      os.system('cd '+config.mp_directory+';'+syscmd)
118    
119      log = open(_slashify(config.mp_directory)+diagram+'.gen.log').read()      log = open(slashify(config.mp_directory)+diagram+'.gen.log').read()
120      if log.find("\n"+'!') != -1:      if log.find("\n"+'!') != -1:
121          dbg_fail('Error occurred while processing the diagram. The log is shown below.')          dbg_fail('Error occurred while processing the diagram. The log is shown below.')
122          dbg_fail(log)          dbg_fail(log)
# Line 147  def mp2png(diagram, scale=1.0): Line 145  def mp2png(diagram, scale=1.0):
145    
146      scaling = int(scaling / scale)      scaling = int(scaling / scale)
147    
148      syscmd = ('pstopnm '+' '.join(list)+' <'+_slashify(config.mp_directory)+diagram+'.gen' \      syscmd = ('pstopnm '+' '.join(list)+' <'+slashify(config.mp_directory)+diagram+'.gen' \
149                +'.mp.1 2>/dev/null | pnmscale -reduce '+scaling+' 2>/dev/null | ' \                +'.mp.1 2>/dev/null | pnmscale -reduce '+scaling+' 2>/dev/null | ' \
150                +'pnmtopng >'+_slashify(config.mp_directory)+diagram+'.gen.png 2>/dev/null')                +'pnmtopng >'+slashify(config.mp_directory)+diagram+'.gen.png 2>/dev/null')
151    
152      dbg(syscmd)      dbg(syscmd)
153      os.system(syscmd)      os.system(syscmd)

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26