/[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.36 by humppake, Wed Jun 4 12:19:19 2003 UTC revision 1.37 by humppake, Wed Jun 11 07:49:34 2003 UTC
# Line 66  class MetapostElement(navidoc.NamedEleme Line 66  class MetapostElement(navidoc.NamedEleme
66          return self.repl(s)          return self.repl(s)
67    
68  class SimpleElement(MetapostElement):  class SimpleElement(MetapostElement):
69      def __init__(self, var, s, list):      def __init__(self, var, toks, list):
70          dbg("Simple element: %s %s %s" % (self, s, list))          dbg("Simple element: %s %s %s" % (var, toks, list))
71          self.var = var or s          self.var = var or toks[0]
72          self.name = s          self.name = toks[0]
73          self.do_contents(list)          self.do_contents(list)
74          if self.link != None:          if self.link != None:
75              self.link.bbox = ('bboxmeasuredpic(%s)' % (self.var))              self.link.bbox = ('bboxmeasuredpic(%s)' % (self.var))
76    
77  class mptitle(MetapostElement):  class mptitle(MetapostElement):
78      key = 'title'      key = 'title'
79      def __init__(self, var, s, list = []):      def __init__(self, var, toks, list = []):
80          dbg("mp: %s %s" % (s,list))          dbg("mptitle: %s %s %s" % (var, toks, list))
81          """Grep longer title after variable name."""          if not var: raise UMLException('No variable given name for title (%s).' %(' '.join(toks)))
82          if var == None and s.find(' ')!=-1:          self.var = var
83              self.var = s.split(' ')[0]          self.name = var
84              s = s[len(self.var)+1:]          self.title = ' '.join(toks)
85              if s[0] == '"' and s[-1]=='"':  
86                  s = s[1:len(s)-1]          # Removing possible quotes
87          else: self.var = var or s          if self.title.startswith('"') and self.title.endswith('"'):
88                self.title = self.title[1:len(self.title)-1]
89                    
         """Title could be used as name if contains no spaces"""  
         if len(s.split(' ')) > 0:  
             self.name = self.var  
         else: self.name = s  
         self.title = s  
   
90          self.do_contents(list)          self.do_contents(list)
91          if self.link != None:          if self.link != None:
92              self.link.bbox = ('bboxmeasuredpic(%s)' % (self.var))              self.link.bbox = ('bboxmeasuredpic(%s)' % (self.var))
# Line 111  class mptitle(MetapostElement): Line 106  class mptitle(MetapostElement):
106    
107  class mpContextMenu(MetapostElement):  class mpContextMenu(MetapostElement):
108      key = 'contextmenu'      key = 'contextmenu'
109      def __init__(self, var, s, list = []):      def __init__(self, var, toks, list = []):
110          config.mp_context_menu = 1          config.mp_context_menu = 1
111      def setup_code(self):      def setup_code(self):
112          return ''          return ''
# Line 159  def context_menu(diagram): Line 154  def context_menu(diagram):
154                  target = relative_path(config.link_base_directory, refers[id])                  target = relative_path(config.link_base_directory, refers[id])
155              refer_names[id] = random_var()              refer_names[id] = random_var()
156    
157              element = mptitle(refer_names[id], title,              element = mptitle(refer_names[id], [title],
158                                [['link', target+'#'+diagram]])                                [[['link'], [target+'#'+diagram]]])
159              if id == len(refers)-1:              if id == len(refers)-1:
160                  context_menu += "\tdraw ulcorner(bbox(currentpicture))+(0,10) -- urcorner(bbox(currentpicture))+(0,10) withpen pencircle scaled 1.5pt;\n"                  context_menu += "\tdraw ulcorner(bbox(currentpicture))+(0,10) -- urcorner(bbox(currentpicture))+(0,10) withpen pencircle scaled 1.5pt;\n"
161                  context_menu += element.setup_code()                  context_menu += element.setup_code()
# Line 201  def create_uml(diagram, context='', scal Line 196  def create_uml(diagram, context='', scal
196    
197      dir = slashify(config.mp_directory)      dir = slashify(config.mp_directory)
198    
199      gen1 = open(dir+diagram+context+config.midfix+'.mp.1', 'w')      gen1 = open(dir+diagram+context+config.midfix+'.mp.2', 'w')
200      gen1.write(m.setup_code()+'\n')      gen1.write(m.setup_code()+'\n')
201      gen1.close()      gen1.close()
202      gen2 = open(dir+diagram+context+config.midfix+'.mp.2', 'w')      gen2 = open(dir+diagram+context+config.midfix+'.mp.3', 'w')
203      gen2.write(m.draw_code()+"\n")      gen2.write(m.draw_code()+"\n")
204      gen2.write(draw_extra+"\n")      gen2.write(draw_extra+"\n")
205    
# Line 217  def create_uml(diagram, context='', scal Line 212  def create_uml(diagram, context='', scal
212      rough_edges = []      rough_edges = []
213    
214      midfix = config.midfix      midfix = config.midfix
215      gen3 = open(dir+diagram+context+config.midfix+".mp.3", "w")      gen3 = open(dir+diagram+context+config.midfix+".mp.4", "w")
216      gen3.write("""      gen3.write("""
217          prologues := 1;          prologues := 1;
218          input """+slashify(relative_path(config.mp_directory, 'navidoc/mp/'))+"""uml.mp          """)
219        for include in config.mp_includes:
220            gen3.write("""
221            input """+slashify(relative_path(config.mp_directory, 'navidoc/mp/'))+include)
222        gen3.write("""        
223          beginfig(1)          beginfig(1)
             input %(diagram)s%(context)s%(midfix)s.mp.1  
             input %(diagram)s%(midfix)s.mp  
224              input %(diagram)s%(context)s%(midfix)s.mp.2              input %(diagram)s%(context)s%(midfix)s.mp.2
225                input %(diagram)s%(midfix)s.mp
226                input %(diagram)s%(context)s%(midfix)s.mp.3
227          endfig          endfig
228          end          end
229          """ % locals())          """ % locals())
# Line 240  def mp2png(diagram, scale=1.0): Line 238  def mp2png(diagram, scale=1.0):
238    
239      syscmd = config.metapost+' --file-line-error-style ' \      syscmd = config.metapost+' --file-line-error-style ' \
240               + '--interaction nonstopmode ' \               + '--interaction nonstopmode ' \
241               + diagram + config.midfix + '.mp.3 >'+config.stderr               + diagram + config.midfix + '.mp.4 >'+config.stderr
242    
243      dbg(syscmd)      dbg(syscmd)
244      os.system('cd '+config.mp_directory+';'+syscmd)      os.system('cd '+config.mp_directory+';'+syscmd)
# Line 336  class MPLink: Line 334  class MPLink:
334              )]              )]
335          dbg("Mapped corners: "+str(self.corners))          dbg("Mapped corners: "+str(self.corners))
336    
337      def imgmapanchor(self, scale=1.0, diagram=None):      def imgmapanchor(self, scale=1.0, diagram=''):
338          #If we have a link with empty target and empty title, let's link          #If we have a link with empty target and empty title, let's link
339          #it to the diagram itself, if diagram name provided.          #it to the diagram itself, if diagram name provided.
340          if self.title == '' and diagram: self.title = diagram+config.midfix+'.png'          if self.title == '' and diagram: self.title = diagram+config.midfix+'.png'
341          if self.target == '' and diagram:          if self.target == '' and diagram:
342              self.target = slashify(relative_path(config.working_directory, config.mp_directory))+diagram+config.midfix+'.png'              self.target = slashify(relative_path(config.working_directory, config.mp_directory))+diagram+config.midfix+'.png'
343          if self.target.endswith('.png'): target = '_plain'          if self.target.endswith('.png'):
344                target = '_plain'
345          else: target = '_top'          else: target = '_top'
346                        
347          return """<area href="%s" shape="rect" coords="%s" target="%s" title="%s" alt="%s" />""" \          return """<area href="%s" shape="rect" coords="%s" target="%s" title="%s" alt="%s" />""" \
348                 % (self.target,                 % (self.target,
349                    ",".join(["%s"%(int(c*scale)) for c in self.corners]),                    ",".join(["%s"%(int(c*scale)) for c in self.corners]),

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.37

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