~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to dotgraph.py

  • Committer: Aaron Bentley
  • Date: 2007-12-22 02:01:03 UTC
  • Revision ID: aaron.bentley@utoronto.ca-20071222020103-ggjszok7n974e1l2
Update branches, multi-pull to new APIs, create trees

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright (C) 2004, 2005 Aaron Bentley
2
 
# <aaron@aaronbentley.com>
 
2
# <aaron.bentley@utoronto.ca>
3
3
#
4
4
#    This program is free software; you can redistribute it and/or modify
5
5
#    it under the terms of the GNU General Public License as published by
16
16
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
17
 
18
18
from subprocess import Popen, PIPE
 
19
from urllib import urlencode
 
20
from xml.sax.saxutils import escape
19
21
import os.path
20
22
import errno
21
23
import tempfile
22
24
import shutil
 
25
import time
23
26
 
24
27
RSVG_OUTPUT_TYPES = ('png', 'jpg')
25
28
DOT_OUTPUT_TYPES = ('svg', 'svgz', 'gif', 'jpg', 'ps', 'fig', 'mif', 'png',
49
52
        self.message = message
50
53
        self.href = None
51
54
 
52
 
    @staticmethod
53
 
    def get_attribute(name, value):
54
 
        if value is None:
55
 
            return ''
56
 
        value = value.replace("\\", "\\\\")
57
 
        value = value.replace('"', '\\"')
58
 
        value = value.replace('\n', '\\n')
59
 
        return '%s="%s"' % (name, value)
60
 
 
61
55
    def define(self):
62
56
        attributes = []
63
57
        style = []
71
65
        if label is not None:
72
66
            attributes.append('label="%s"' % label)
73
67
        attributes.append('shape="box"')
74
 
        tooltip = None
 
68
        tooltip = ''
75
69
        if self.message is not None:
76
 
            tooltip = self.message
77
 
        attributes.append(self.get_attribute('tooltip', tooltip))
 
70
            tooltip += self.message.replace('"', '\\"')
 
71
        if tooltip:
 
72
            attributes.append('tooltip="%s"' % tooltip)
78
73
        if self.href is not None:
79
74
            attributes.append('href="%s"' % self.href)
80
75
        elif tooltip: