45 |
return 'showfocus("'+self.target+'", '+self.title+', ('+self.bbox+'));' \ |
return 'showfocus("'+self.target+'", '+self.title+', ('+self.bbox+'));' \ |
46 |
+"\n"+'drawRoughEdge(('+bbox+'));' |
+"\n"+'drawRoughEdge(('+bbox+'));' |
47 |
else: return 'showfocus("'+self.target+'", '+self.title+', ('+self.box+'));' |
else: return 'showfocus("'+self.target+'", '+self.title+', ('+self.box+'));' |
48 |
navidoc.link.Link.draw_code = link_draw_code |
#navidoc.link.Link.draw_code = link_draw_code |
49 |
|
|
50 |
class MetapostElement(navidoc.NamedElement): |
class MetapostElement(navidoc.NamedElement): |
51 |
def repl(self, s): |
def repl(self, s): |
66 |
self.var = var or s |
self.var = var or s |
67 |
self.name = s |
self.name = s |
68 |
self.do_contents(list) |
self.do_contents(list) |
69 |
|
if self.link != None: |
70 |
|
self.link.bbox = ('bboxmeasuredpic(%s)' % (self.var)) |
71 |
|
|
72 |
def create_uml(diagram, extension='', scale=1.0): |
def create_uml(diagram, extension='', scale=1.0): |
73 |
""" |
""" |
84 |
if len(extension) > 0: extension = '_'+extension |
if len(extension) > 0: extension = '_'+extension |
85 |
|
|
86 |
dir = slashify(config.mp_directory) |
dir = slashify(config.mp_directory) |
87 |
|
if config.mp_eps_only: |
88 |
|
eps = open(dir+diagram+extension+'_gen.eps', 'w') |
89 |
|
eps.write(m.setup_code()+'\n') |
90 |
|
return |
91 |
|
|
92 |
gen1 = open(dir+diagram+extension+'.gen.mp.1', 'w') |
gen1 = open(dir+diagram+extension+'.gen.mp.1', 'w') |
93 |
gen1.write(m.setupCode()+'\n') |
gen1.write(m.setup_code()+'\n') |
94 |
gen1.close() |
gen1.close() |
95 |
gen2 = open(dir+diagram+extension+'.gen.mp.2', 'w') |
gen2 = open(dir+diagram+extension+'.gen.mp.2', 'w') |
96 |
gen2.write(m.drawCode()+"\n") |
gen2.write(m.draw_code()+"\n") |
97 |
gen2.write("showlinksize(\"bbox\", (bbox currentpicture));\n") |
gen2.write('showlinksize("bbox", "'+diagram+'", (bbox currentpicture));'+"\n") |
98 |
gen2.close() |
gen2.close() |
99 |
gen3 = open(dir+diagram+extension+".gen.mp.3", "w") |
gen3 = open(dir+diagram+extension+".gen.mp.3", "w") |
100 |
gen3.write(""" |
gen3.write(""" |
101 |
prologues := 1; |
prologues := 1; |
|
input general.mp |
|
102 |
input uml.mp |
input uml.mp |
103 |
|
|
104 |
beginfig(1) |
beginfig(1) |
105 |
input %(diagram+extension)s.gen.mp.1 |
input %(diagram)s%(extension)s.gen.mp.1 |
106 |
input %(diagram)s.gen.mp |
input %(diagram)s.gen.mp |
107 |
input %(diagram+extension)s.gen.mp.2 |
input %(diagram)s%(extension)s.gen.mp.2 |
108 |
endfig |
endfig |
109 |
end |
end |
110 |
""" % locals()) |
""" % locals()) |
124 |
dbg(syscmd) |
dbg(syscmd) |
125 |
os.system('cd '+config.mp_directory+';'+syscmd) |
os.system('cd '+config.mp_directory+';'+syscmd) |
126 |
|
|
127 |
log = open(slashify(config.mp_directory)+diagram+'.gen.log').read() |
log = open(slashify(config.mp_directory)+diagram+'.gen.mp.log').read() |
128 |
if log.find("\n"+'!') != -1: |
if log.find("\n"+'!') != -1: |
129 |
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.') |
130 |
dbg_fail(log) |
dbg_fail(log) |
138 |
|
|
139 |
# grep all linked areas from log file |
# grep all linked areas from log file |
140 |
for link in re.findall('LINKRECT\((.*?)\)', log): |
for link in re.findall('LINKRECT\((.*?)\)', log): |
141 |
|
dbg(link) |
142 |
els = link.split(',') |
els = link.split(',') |
143 |
if els[0] == '"bbox"': |
if els[0] == '"bbox"': |
144 |
bbox = els |
bbox = els |
145 |
else: |
else: |
146 |
|
dbg(els) |
147 |
links.append(MPLink(els)) |
links.append(MPLink(els)) |
148 |
dbg(bbox) |
dbg(bbox) |
149 |
|
|
155 |
|
|
156 |
scaling = int(scaling / scale) |
scaling = int(scaling / scale) |
157 |
|
|
158 |
|
dbg("List: "+str(list)) |
159 |
syscmd = ('pstopnm '+' '.join(list)+' <'+slashify(config.mp_directory)+diagram+'.gen' \ |
syscmd = ('pstopnm '+' '.join(list)+' <'+slashify(config.mp_directory)+diagram+'.gen' \ |
160 |
+'.mp.1 2>/dev/null | pnmscale -reduce '+scaling+' 2>/dev/null | ' \ |
+""".mp.1 2>/dev/null | pnmscale -reduce %s 2>/dev/null | """%scaling \ |
161 |
+'pnmtopng >'+slashify(config.mp_directory)+diagram+'.gen.png 2>/dev/null') |
+'pnmtopng >'+slashify(config.mp_directory)+diagram+'.gen.png 2>/dev/null')# |
162 |
|
|
163 |
dbg(syscmd) |
dbg(syscmd) |
164 |
os.system(syscmd) |
os.system(syscmd) |