root/trunk/RBSkinning/RBSkinning/dotSkin/graph.py

Revision 395, 2.2 kB (checked in by sholloway, 6 years ago)

Moved all references from Foundation to RBFoundation

Line 
1 #!/usr/bin/env python
2 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 ##~ License
4 ##~
5 ##- The RuneBlade Foundation library is intended to ease some
6 ##- aspects of writing intricate Jabber, XML, and User Interface (wxPython, etc.)
7 ##- applications, while providing the flexibility to modularly change the
8 ##- architecture. Enjoy.
9 ##~
10 ##~ Copyright (C) 2002  TechGame Networks, LLC.
11 ##~
12 ##~ This library is free software; you can redistribute it and/or
13 ##~ modify it under the terms of the BSD style License as found in the
14 ##~ LICENSE file included with this distribution.
15 ##~
16 ##~ TechGame Networks, LLC can be reached at:
17 ##~ 3578 E. Hartsel Drive #211
18 ##~ Colorado Springs, Colorado, USA, 80920
19 ##~
20 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21
22 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23 #~ Imports
24 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25
26 from graph_settings import graph_settings
27 from RBFoundation.Utilities import *
28
29 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
30 #~ Class Initialization
31 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32
33 class graph(graph_settings):
34     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
35     #~ Constants / Variables / Etc.
36     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37
38     default_settings = graph_settings.default_settings.copy()
39     default_settings['name'] = 'G'
40     _DOTStartFormat = 'graph %s {'
41
42     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43     #~ Public
44     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45
46     def SkinInitialize(self):
47         self.PushContext()
48         self.context.DOTEdgeJoin = '--'
49
50     def _toDOT(self, joinstr='\n', close=1):
51         name = self.settings.get('name', '')
52         if not name: name = joinclean('\n', self.Content())
53         result = [self._DOTStartFormat % name]
54         DOTSettings = self._OutputDOTSettings(';\n')
55         if DOTSettings: result.append(DOTSettings)
56
57         for each in self.Elements():
58             try: toDOT = each._toDOT
59             except AttributeError: pass
60             else: result.append(toDOT(joinstr))
61
62         if close: result.append('}')
63
64         if joinstr is not None:
65             return joinstr.join(result)
66         else: return result
Note: See TracBrowser for help on using the browser.