/[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.22 by humppake, Mon Jun 30 13:56:10 2003 UTC revision 1.23 by humppake, Mon Jul 28 14:44:35 2003 UTC
# Line 365  class mpbigpackage(navidoc.mp.MetapostEl Line 365  class mpbigpackage(navidoc.mp.MetapostEl
365          self.elements = []          self.elements = []
366          self.var = var or toks[0]          self.var = var or toks[0]
367          self.name = toks[0]          self.name = toks[0]
368          self.do_contents(list)  
369            self.link = None
370    
371            for element in list:
372                try: # try to make contained element work on it's own
373                    element = config.element_list.parse_element(element)
374                    if len(config.element_list.extras) > 0 and \
375                           isinstance(config.element_list.extras[0], navidoc.link.Link):
376                        config.element_list.list.append(config.element_list.extras.pop(0))
377                    config.element_list.list.append(element)
378                    if hasattr(element, 'var') and element.var:
379                        self.elements.append(element.var)
380                except IndexError, e: # didn't work, add it as contained (usually links)
381                    config.element_list.add_contained_element(self, element)
382    
383          if self.link != None:          if self.link != None:
384              self.link.bbox = ('bboxmeasuredpic(%s)' % (self.var))              self.link.bbox = ('bboxmeasuredpic(%s.titl)' % (self.var))
385      def handle_contained(self, element):  
         element = config.element_list.parse_element(element)  
         config.element_list.list.append(element)  
         if hasattr(element, 'var') and element.var:  
             self.elements.append(element.var)  
386      def setup_code(self):      def setup_code(self):
387          titlebox = """          s = """
388              addto %%.titl.pict doublepath (urcorner(%%.titl.pict)--lrcorner(%%.titl.pict)) withpen currentpen;          picture %%.titl.pict;
389              addto %%.titl.pict doublepath (ulcorner(%%.titl.pict)--llcorner(%%.titl.pict)) withpen currentpen;          %%.titl.pict = classTitle("%name%");
390              addto %%.titl.pict doublepath (ulcorner(%%.titl.pict)--urcorner(%%.titl.pict)) withpen currentpen;          setbounds %%.titl.pict to bbox %%.titl.pict;
391              """  
392          s = """          addto %%.titl.pict doublepath (urcorner(%%.titl.pict)--lrcorner(%%.titl.pict)) withpen currentpen;
393              picture %%.titl.pict;          addto %%.titl.pict doublepath (ulcorner(%%.titl.pict)--llcorner(%%.titl.pict)) withpen currentpen;
394              %%.titl.pict = classTitle("%name%");          addto %%.titl.pict doublepath (ulcorner(%%.titl.pict)--urcorner(%%.titl.pict)) withpen currentpen;
395              setbounds %%.titl.pict to bbox %%.titl.pict;  
396              """          unknownpicmeasurements(%%);
397          if not self.elements: s = s + titlebox          picmeasurements(%%.titl);
398          s = s + """          %%.titl.sw = %%.nw;
399              unknownpicmeasurements(%%);          """
400              picmeasurements(%%.titl);          return self.repl(s)
             %%.titl.sw = %%.nw;  
             """  
         if self.elements: s = s + titlebox  
         return self.repl(s)  
401      def draw_code(self):      def draw_code(self):
         s = ''  
402          if self.elements:          if self.elements:
403              elements_sw_x = 'xpart ' + '.sw, xpart '.join(self.elements) + '.sw'              elements_sw_x = 'xpart ' + '.sw, xpart '.join(self.elements) + '.sw'
404              elements_sw_y = 'ypart ' + '.sw, ypart '.join(self.elements) + '.sw'              elements_sw_y = 'ypart ' + '.sw, ypart '.join(self.elements) + '.sw'
405              elements_ne_x = 'xpart ' + '.ne, xpart '.join(self.elements) + '.ne'              elements_ne_x = 'xpart ' + '.ne, xpart '.join(self.elements) + '.ne'
406              elements_ne_y = 'ypart ' + '.ne, ypart '.join(self.elements) + '.ne'              elements_ne_y = 'ypart ' + '.ne, ypart '.join(self.elements) + '.ne'
407                        
408              s = """          s = ''
409              %%.sw = (min("""+elements_sw_x+"""), min("""+elements_sw_y+""")) - (10,10);          if self.elements:
410              %%.ne = (max("""+elements_ne_x+"""), max("""+elements_ne_y+""")) + (10,10);              s += """
411              """          %%.sw = (min("""+elements_sw_x+"""), min("""+elements_sw_y+""")) - (10,10);
412          s = s + """          %%.ne = (max("""+elements_ne_x+"""), max("""+elements_ne_y+""")) + (10,10);
413              draw bboxmeasuredpic(%%);  
             drawmeasuredpic(%%.titl);  
414              """              """
415            s += """
416            picmeasurements(%%.titl);
417            %%.titl.sw = %%.nw;
418    
419            draw bboxmeasuredpic(%%);
420            drawmeasuredpic(%%.titl);
421            """
422          return self.repl(s)          return self.repl(s)
423    
424  class mpqual(navidoc.mp.MetapostElement):  class mpqual(navidoc.mp.MetapostElement):

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.23

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