~ubuntu-branches/ubuntu/karmic/gaphor/karmic

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
For 0.10.0 and later:
---------------------

 === zope.component-3.4dev_r72749-py2.4.egg ===
 - bug in zope.component package: in zope.component.globalregistry.py zope.testing is included.  This package is only a dependency for the [test] setting. zope.testing is not mandatory.
 Use a more recent version

 - add more property pages.
    - Stereotype

 - Load / save regression testing
   !!! Create some example diagrams,

 - using stereotypes
 - reimplement the mechanism that adds already existing relationships to the
   diagram if an item is copied to that diagram.

 - components and stuff

 - lot's of tests are dependent on a decently initialized main window.
   There is no need for these actions to depend on a main window, they only
   need a gaphas.View instance.

 - Use actions only for action definitions. use Events for notification
   between actions.
    * use zope.component.event for centralized event notification.
 
- Copy/Paste for diagramitems
  - How to do a copy/paste? shallow copy or deep copy? -> just create a diagram
    item item referening the same model element or also copy the model element?
    I think we should stick with shallow copy for now.

 - namedelement.py: from NamedElement
 - items.tex: describe:
    - __uml__
    - __stereotype__

 - In some cases (like when editing attributes) Enter should be used to
   complete the edit action.

Older (long term ;) todo items:
-------------------------------

- At this point we have three event systems:
   2. Actions - used for (pseudo) menu actions (artifical actions are triggered
                some times (e.g. to notify about changes in the Undo Manager)
                works with string based notifiers.
   3. Zope - fairly optimized, works with interfaces and objects for a
             change.

   Actions work fine, for menu actions. Gaphor specific and should work
   with the GTK+ menu manager classes.
   Zope classes are quite optimized. However, mainly provides the same
   functionality as Actions, but not as fine grained.
   Use zope.component.events for all notification!

- Add meta data (such as text alignment) to the model file (add a meta:
  namespace?)
.
- Fix namespace relations between Lifeline and Interaction and Message and
  Interaction

- disable actions when editing.

- write really good test cases for undo functionality. Have some already.

- An option that shows the selected item (in the namespace view) in a diagram.

- Stereotype export and import function. Allow to export packages and import
  them into other models.

- How to figure out if a module exists without loading it? Solved by setuptools

- Exporting diagrams to UML XMI (work in progress),
  code, images (SVG/png), etc. - make a plugin!

- Create a good algorithm for placement of lines and maybe nodes too.

- Automatically draw relations when an item is DND-ed from the tree-view
  to the diagram.

#- Stereotypes: check documentation page 581 (597 absolute). Fixed. An extra
   association has been created between Stereotype and Class, Interface and
   Package.

Diagram Items
=============
Gaphor does not need to support *all* diagram types, but at least some
functinality should be provided for those.

- Sequence diagram:
  . Life line
  . different message types
  . Interaction

UI
--
>I would like to see
> some logic to align diagrams like Visio does, it's probably hard to do
> correct though. Also Visio has a very nice feature for bending lines in
> 90 degree bends by holding down shift, something like that would be very
> nice in Gaphor

- Lineup selected elements vertically, horizontally in context menu

- I also intend to "merge" lines (as is often used for generalizations: a
  line with one arrow, which splits into two lines, one for each subclass)

- The text editing also needs a facelift.