root/gaphor/tags/gaphor-0.3.0/gaphor/diagram/__init__.py

Revision 271, 2.1 kB (checked in by arjanmol, 5 years ago)

*** empty log message ***

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 # All model items...
2 # vim:sw=4
3
4 __version__ = '$revision$'
5 __author__ = 'Arjan J. Molenaar'
6 __date__ = '$date$'
7
8 import gobject
9 import diacanvas
10 import gaphor.misc.uniqueid as uniqueid
11
12 # Map UML elements to their (default) representation.
13 _uml_to_item_map = { }
14
15 def create(type):
16     return create_as(type, uniqueid.generate_id())
17
18 def create_as(type, id):
19     return type(id)
20
21 def get_diagram_item(element):
22     global _uml_to_item_map
23     try:
24         return _uml_to_item_map[element]
25     except:
26         return None
27
28 def initialize_item(item_class, default_uml_class=None):
29     """Initialize a new diagram item.
30     This involves:
31     1. registring the new diagram item with the GObject type
32     2. If nessesary: add canvas item callbacks
33     3. If nessesary: add canvas groupable callbacks
34     4. If nessesary: add canvas editable callbacks
35     """
36     global _uml_to_item_map
37     gobject.type_register(item_class)
38     bases = item_class.__bases__
39     if (diacanvas.CanvasItem in bases) or \
40         (diacanvas.CanvasGroup in bases) or \
41         (diacanvas.CanvasLine in bases) or \
42         (diacanvas.CanvasElement in bases) or \
43         (diacanvas.CanvasBox in bases) or \
44         (diacanvas.CanvasText in bases) or \
45         (diacanvas.CanvasImage in bases):
46         diacanvas.set_callbacks (item_class)
47     if (diacanvas.CanvasGroupable in bases):
48         diacanvas.set_groupable (item_class)
49     if (diacanvas.CanvasEditable in bases):
50         diacanvas.set_editable (item_class)
51
52     if default_uml_class:
53         _uml_to_item_map[default_uml_class] = item_class
54
55 from placementtool import PlacementTool
56 from actor import ActorItem
57 from klass import ClassItem
58 from comment import CommentItem
59 from commentline import CommentLineItem
60 from usecase import UseCaseItem
61 from package import PackageItem
62 from relationship import RelationshipItem
63 from dependency import DependencyItem
64 from generalization import GeneralizationItem
65 from association import AssociationItem
66 #from state import StateItem
67 #import diagramitemactions
68 import itemactions
69
70 if __debug__:
71     # Keep track of all model elements that are created
72     from gaphor.misc.aspects import ReferenceAspect, weave_method
73     from gaphor import refs
74     weave_method(create_as, ReferenceAspect, refs)
Note: See TracBrowser for help on using the browser.