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

Diff of /navidoc/navidoc/mp/uml.py

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

revision 1.3 by humppake, Fri Mar 28 13:08:57 2003 UTC revision 1.4 by humppake, Mon Mar 31 15:24:19 2003 UTC
# Line 31  import config Line 31  import config
31    
32  import re  import re
33    
34  from navidoc.parser import *  from navidoc.utils.parser import *
35    
36  dbg = config.dbg.shorthand('uml')  dbg = config.dbg.shorthand('uml')
37    
38  class mpsequence(Element):  class UMLException(Exception):
39        def __init__(self, value):
40            Exception.__init__(self)
41            self.value = value
42        def __str__(self):
43            return self.value
44    
45    class mpsequence(navidoc.Element):
46      key = 'sequence'      key = 'sequence'
47            
48      def getVarForY(self, before, after):      def getVarForY(self, before, after):
# Line 142  class mpsequence(Element): Line 149  class mpsequence(Element):
149              elif s == "return":              elif s == "return":
150                  pass                  pass
151              else:              else:
152                  raise umlException("Must have call or return, not '"+s+"'")                  raise UMLException("Must have call or return, not '"+s+"'")
153          return l          return l
154      def setup_code(self):      def setup_code(self):
155          return self.repl(          return self.repl(
# Line 167  class mpsequence(Element): Line 174  class mpsequence(Element):
174          s = s.replace("%%", self.var)          s = s.replace("%%", self.var)
175          return s          return s
176    
177  class mpclass(MetaPostElement):  class mpclass(navidoc.mp.MetapostElement):
178      key = 'class'      key = 'class'
179      def __init__(self, var, s, list):      def __init__(self, var, s, list):
180          dbg("mpclass: %s %s" % (s,list))          dbg("mpclass: %s %s" % (s,list))
# Line 188  class mpclass(MetaPostElement): Line 195  class mpclass(MetaPostElement):
195          elif el[0] == "fields":          elif el[0] == "fields":
196              self.fields = el[1:]              self.fields = el[1:]
197          else:          else:
198              MetaPostElement.handle_contained(self, el)              navidoc.mp.MetapostElement.handle_contained(self, el)
199      def defaultlink(self):      def defaultlink(self):
200          if self.linkpackage != None and "." not in self.name:          if self.linkpackage != None and "." not in self.name:
201              return self.linkpackage + "." + self.name              return self.linkpackage + "." + self.name
# Line 234  class mpclass(MetaPostElement): Line 241  class mpclass(MetaPostElement):
241              """              """
242          return self.repl(s)          return self.repl(s)
243    
244  class mppackage(MetaPostElement):  class mppackage(navidoc.mp.MetapostElement):
245      key = 'package'      key = 'package'
246      def __init__(self, var, s, list):      def __init__(self, var, s, list):
247          dbg("mppackage: %s %s" % (s,l))          dbg("mppackage: %s %s" % (s,l))
# Line 256  class mppackage(MetaPostElement): Line 263  class mppackage(MetaPostElement):
263              """              """
264          return self.repl(s)          return self.repl(s)
265    
266  class mptitle(MetaPostElement):  class mptitle(navidoc.mp.MetapostElement):
267      key = 'title'      key = 'title'
268      def __init__(self, var, s, l = []):      def __init__(self, var, s, l = []):
269          dbg("mp: %s %s" % (s,l))          dbg("mp: %s %s" % (s,l))
# Line 277  class mptitle(MetaPostElement): Line 284  class mptitle(MetaPostElement):
284          return self.repl(s)          return self.repl(s)
285    
286  # XXX underlining  # XXX underlining
287  class mpseqobject(SimpleElement):  class mpseqobject(navidoc.mp.SimpleElement):
288      key = 'seqobject'      key = 'seqobject'
289      def setup_code(self):      def setup_code(self):
290          s = """          s = """
# Line 301  class mpseqobject(SimpleElement): Line 308  class mpseqobject(SimpleElement):
308              """              """
309          return self.repl(s)          return self.repl(s)
310    
311  class mpcomponent(SimpleElement):  class mpcomponent(navidoc.mp.SimpleElement):
312      key = 'component'      key = 'component'
313      def setup_code(self):      def setup_code(self):
314          s = """          s = """
# Line 314  class mpcomponent(SimpleElement): Line 321  class mpcomponent(SimpleElement):
321              """              """
322          return self.repl(s)          return self.repl(s)
323    
324  class mpinterface(SimpleElement):  class mpinterface(navidoc.mp.SimpleElement):
325      key = 'interface'      key = 'interface'
326      def setup_code(self):      def setup_code(self):
327          s = """          s = """
# Line 337  class mpinterface(SimpleElement): Line 344  class mpinterface(SimpleElement):
344          """          """
345          return self.repl(s)          return self.repl(s)
346    
347  class mpnary(SimpleElement):  class mpnary(navidoc.mp.SimpleElement):
348      key = 'naryassoc'      key = 'naryassoc'
349      def setup_code(self):      def setup_code(self):
350          s = """          s = """
# Line 352  class mpnary(SimpleElement): Line 359  class mpnary(SimpleElement):
359          """          """
360          return self.repl(s)          return self.repl(s)
361    
362  class mpbigpackage(SimpleElement):  class mpbigpackage(navidoc.mp.SimpleElement):
363      key = 'bigpackage'      key = 'bigpackage'
364      def setup_code(self):      def setup_code(self):
365          s = """          s = """
# Line 375  class mpbigpackage(SimpleElement): Line 382  class mpbigpackage(SimpleElement):
382              drawmeasuredpic(%%.titl);"""              drawmeasuredpic(%%.titl);"""
383          return self.repl(s)          return self.repl(s)
384    
385  class mpqual(MetaPostElement):  class mpqual(navidoc.mp.MetapostElement):
386      key = 'qual'      key = 'qual'
387      def __init__(self, var, s , list):      def __init__(self, var, s , list):
388          self.var = var          self.var = var
# Line 386  class mpqual(MetaPostElement): Line 393  class mpqual(MetaPostElement):
393          if el[0] == "fields":          if el[0] == "fields":
394              self.fields = el[1:]              self.fields = el[1:]
395          else:          else:
396              MetaPostElement.handle_contained(self, el)              navidoc.mp.MetapostElement.handle_contained(self, el)
397      def setup_code(self):      def setup_code(self):
398          s = """          s = """
399              picture %%.pict;              picture %%.pict;
# Line 398  class mpqual(MetaPostElement): Line 405  class mpqual(MetaPostElement):
405              [ '"'+m[0]+'"' for m in self.fields ] ))              [ '"'+m[0]+'"' for m in self.fields ] ))
406          return self.repl(s)          return self.repl(s)
407    
408  class mpassoc(MetaPostElement):  class mpassoc(navidoc.mp.MetapostElement):
409      key = 'assoc'      key = 'assoc'
410      class end(MetaPostElement):      class end(navidoc.mp.MetapostElement):
411          def __init__(self, var, list):          def __init__(self, var, list):
412              self.var = var              self.var = var
413              self.name = ""              self.name = ""
# Line 423  class mpassoc(MetaPostElement): Line 430  class mpassoc(MetaPostElement):
430                      if mat:                      if mat:
431                          self.role = mat.group(1)                          self.role = mat.group(1)
432                          continue                          continue
433                      raise umlException("Invalid assoc adorn "+el)                      raise UMLException("Invalid assoc adorn "+el)
434          def setup_code(self):          def setup_code(self):
435              s = """              s = """
436                  picture %%.multi, %%.role;                  picture %%.multi, %%.role;
# Line 491  class mpvobin(mpassoc): Line 498  class mpvobin(mpassoc):
498          self.b.type = "vobinto"          self.b.type = "vobinto"
499    
500    
501  class SimpleRelation(MetaPostElement):  class SimpleRelation(navidoc.mp.MetapostElement):
502      def __init__(self, var, s , list):      def __init__(self, var, s , list):
503          self.var = var or random_var()          self.var = var or random_var()
504          self.name = ""          self.name = ""
505          ends = s.split()          ends = s.split()
506          #assert len(ends) == 2          #assert len(ends) == 2
507          if len(ends) != 2:          if len(ends) != 2:
508              raise umlException("len(ends) != 2")              raise UMLException("len(ends) != 2")
509          self.start = ends[0]          self.start = ends[0]
510          self.end = ends[1]          self.end = ends[1]
511      def setup_code(self):      def setup_code(self):
# Line 551  class mpvobsubmatch(SimpleRelation): Line 558  class mpvobsubmatch(SimpleRelation):
558      def draw_code(self):      def draw_code(self):
559          return self.pathCode() + self.repl(" vobsubmatch(%%.p); ")          return self.pathCode() + self.repl(" vobsubmatch(%%.p); ")
560    
561  class placement(MetaPostElement):  class placement(navidoc.mp.MetapostElement):
562      def __init__(self, var, s , list):      def __init__(self, var, s , list):
563          self.var = var or random_var()          self.var = var or random_var()
564          self.name = ""          self.name = ""
# Line 577  class leftOf(placement): Line 584  class leftOf(placement):
584          return self.repl(' horizontally(%s, %s, %s, %s);' %          return self.repl(' horizontally(%s, %s, %s, %s);' %
585                           (self.length, self.var, self.start, self.end))                           (self.length, self.var, self.start, self.end))
586    
587  class leftOf(placement):  class rightOf(placement):
588      key = 'right-of'      key = 'right-of'
589      def setup_code(self):      def setup_code(self):
590          return self.repl(' horizontally(%s, %s, %s, %s);' %          return self.repl(' horizontally(%s, %s, %s, %s);' %

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

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