~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to dotgraph.py

  • Committer: Aaron Bentley
  • Date: 2005-08-31 17:50:49 UTC
  • Revision ID: abentley@panoramicfeedback.com-20050831175049-53596849b60ea782
Enhanced revision-crediting

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
import os.path
6
6
 
7
7
class Node(object):
8
 
    def __init__(self, name, color=None, label=None):
 
8
    def __init__(self, name, color=None, label=None, rev_id=None):
9
9
        self.name = name
10
10
        self.color = color
11
11
        self.label = label
12
12
        self.committer = None
 
13
        self.rev_id = rev_id 
 
14
 
 
15
    def get_label(self):
 
16
        label = None
 
17
        if self.committer is not None:
 
18
            label="%s\\n%s" % (self.name, self.committer)
 
19
        elif self.rev_id is not None:
 
20
            try:
 
21
                first_segment = '-'.join(self.rev_id.split('-')[:-2])
 
22
            except ValueError:
 
23
                first_segment = []
 
24
            if '@' in first_segment:
 
25
                label="%s\\n%s" % (self.name, first_segment)
 
26
        return label
13
27
 
14
28
    def define(self):
15
29
        style = []
16
30
        if self.color is not None:
17
31
            style.append('fillcolor="%s"' % self.color)
18
32
            style.append('style="filled"')
19
 
        if self.committer is not None:
20
 
            style.append('label="%s\\n%s"' % (self.name, self.committer))
 
33
        label = self.get_label()
 
34
        if label is not None:
 
35
            style.append('label="%s"' % label)
21
36
        if len(style) > 0:
22
37
            return '%s[%s]' % (self.name, " ".join(style))
23
38