573: #line 681 "web_weaver.ipk"
574: def mk_contents(self,toc_filename,target):
575: if 'weavers' in self.process.trace:
576: print 'Generating Table of Contents'
577: self.toc_sink = named_file_sink(
578: self.pass_frame,
579: self.basedir+toc_filename,
580: self.master.weaver_prefix,
581: eol=self.eol)
582: if 'weavers' in self.process.trace:
583: print 'File name',self.toc_sink.name
584: self.mk_head(self.toc_sink)
585: w = self.toc_sink.writeline
586: w( '<BODY lang="'+self.language+'" onload="loadHandler()" onclick="clickHandler()">')
587: if not target:
588: nav = '<DIV CLASS="NAVIGATION">'+self.home_anchor+' '+self.frames_anchor+'<BR><HR></DIV>'
589: self.toc_sink.writeline(nav)
590: w('<H1>'+self.tr_phrase('Table of Contents')+'</H1>')
591: w(stacking_weaver.MSIE_treehandler)
592: last_level = -1
593: if self.toc:
594: i = 0
595: level, hnum, href, text = self.toc[i][:4]
596: next_level = 0
597: if len(self.toc) > i+1: next_level = self.toc[i+1][0]
598: self.emit_contents_line(level, hnum, href, text, level<next_level, target)
599: divid = 'h'+hnum+'d'
600:
601: w('<DIV></DIV><DIV ID='+divid+' style="display:">')
602: last_level = level
603: for i in range(1, len(self.toc)):
604: level, hnum, href, text = self.toc[i][:4]
605: next_level = 0
606: if len(self.toc) > i+1: next_level = self.toc[i+1][0]
607: while level <= last_level:
608: self.toc_sink.writeline('</DIV>')
609: last_level = last_level - 1
610: self.emit_contents_line(level, hnum, href, text, level<next_level, target)
611: divid = 'h'+hnum+'d'
612: w('<DIV></DIV><DIV ID='+divid+' style="display:">')
613: last_level = level
614: while 1 <= last_level:
615: w('</DIV>')
616: last_level = last_level - 1
617: w( '</BODY>')
618: w( '</HTML>')
619: del self.toc_sink
620: return 1
621:
622: def emit_contents_line(self, level, hnum, href, text, enabled, target):
623: self.toc_sink.writeline(' '*(3*level))
624: headid ='h'+hnum
625: flag = 'disabled'
626: if enabled: flag = ''
627: self.toc_sink.writeline('<INPUT ID='+headid+' CLASS="Button" TYPE="Radio" '+flag+'>')
628: if target:
629: self.toc_sink.writeline('<A HREF="'+href+'" TARGET="'+target+'">'+text+'</A>')
630: else:
631: self.toc_sink.writeline('<A HREF="'+href+'">'+text+'</A>')
632: