root/gaphor/tags/gaphor-0.9.0/TODO

Revision 1121, 5.0 kB (checked in by arjanmol, 2 years ago)

Merged changed from new-canvas branch to trunk

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1
2 For 0.10.0 and later:
3 ---------------------
4
5  - use easysetup tools, move gaphas to a separate package and use
6    zope.interface in stead of our included zope tree.
7
8  - Undo functionality
9  - Load / save regression testing
10    !!! Create some example diagrams,
11
12  - using stereotypes
13  - components and stuff
14
15  - lot's of tests are dependent on a decently initialized main window.
16    There is no need for these actions to depend on a main window, they only
17    need a gaphas.View instance.
18
19  - Use actions only for action definitions. use Events for notification
20    between actions.
21
22  - namedelement.py: from NamedElement
23  - items.tex: describe:
24     - __uml__
25     - __stereotype__
26     - __fixed_stereotype__
27
28 Older (long term ;) todo items:
29 -------------------------------
30
31 - At this point we have three event systems:
32    2. Actions - used for (pseudo) menu actions (artifical actions are triggered
33                 some times (e.g. to notify about changes in the Undo Manager)
34                 works with string based notifiers.
35    3. Zope - fairly optimized, works with interfaces and objects for a
36              change.
37
38    Actions work fine, for menu actions. Gaphor specific and should work
39    with the GTK+ menu manager classes.
40    Zope classes are quite optimized. However, mainly provides the same
41    functionality as Actions, but not as fine grained.
42
43 - Add meta data (such as text alignment) to the model file (add a meta:
44   namespace?)
45 .
46 - Fix namespace relations between Lifeline and Interaction and Message and
47   Interaction
48
49 - Allow to make Action objects, instead of defining classes.
50   Should use meta-classes for registration too (define __abstract__ or\something to prevent registration).
51
52 - disable actions when editing.
53
54 - write really good test cases for undo functionality. Have some already.
55
56 - An option that shows the selected item (in the namespace view) in a diagram.
57
58 - Stereotype export and import function. Allow to export packages and import
59   them into other models.
60
61 - How to figure out if a module exists without loading it?
62
63 - Exporting diagrams to UML XMI (work in progress),
64   code, images (SVG/png), etc. - make a plugin!
65
66 - fix accelarators (HOW?), partially done, accelerators on items in popup menus
67   does not work.
68   Accelerators should be activated by the (Abstract)Window, should not depend
69   on menu items. Intercept Window::key_pressed_event and let it handle
70   popup menu actions.
71
72 - In some cases (like when editing attributes) Enter should be used to
73   complete the edit action.
74
75 - Create a good algorithm for placement of lines and maybe nodes too.
76
77 - Use default GTK+ menu classes, in stead of the home-brew one.
78
79 - Use GTK+ 2.4 UIManager and ActionGroups (?):
80   * Reconsider since GTK+ 2.8 bindings are fairly better than the 2.4 bindings
81   . We have to keep the gaphor.misc.action module intact.
82   . As far as I can see, cross action updates, are not supported.
83   . Properties can be mapped in a straightforward way.
84   . Should actions be split up: one for the main window, one group per
85     diagram and one group per item type?
86   . GtkUIManager looks useful, some structures in Gaphor may have to be
87     reconsidered. What to do with AccelMaps for example. (I really have
88     to read the tutorial some day ;-).
89   . The current structure is simple and quite Pythonic. It should be this way.
90   . Stuff like a recent-file box will be easier to create (I guess).
91   Previous conclusion: keep using the gaphor.misc.action code
92
93 - Automatically draw relations when an item is DND-ed from the tree-view
94   to the diagram.
95
96 - Copy/Paste for diagramitems
97   - in order to make copy/paste work, the load/save functions should be
98     generatlised to allow a subset to be saved/loaded (which is needed
99     anyway for exporting/importing stereotype Profiles).
100   - How many data should be saved? (e.g. we copy a diagram item, remove it
101     (the underlaying UML element is removed) and the paste the copied item.
102     The diagram should act as if we have placed a copy of the removed item
103     on the canvas and make the uml element visible again.
104
105 - Undo/redo functionality
106
107 #- Stereotypes: check documentation page 581 (597 absolute). Fixed. An extra
108    association has been created between Stereotype and Class, Interface and
109    Package.
110
111 Diagram Items
112 =============
113 Gaphor does not need to support *all* diagram types, but at least some
114 functinality should be provided for those.
115
116 - Deployment diagram:
117   . Node
118   . Artifact
119   . some relations
120 - Sequence diagram:
121   . Life line
122   . different message types
123   . Interaction
124
125 UI
126 --
127 >I would like to see
128 > some logic to align diagrams like Visio does, it's probably hard to do
129 > correct though. Also Visio has a very nice feature for bending lines in
130 > 90 degree bends by holding down shift, something like that would be very
131 > nice in Gaphor
132
133 - Lineup selected elements vertically, horizontally in context menu
134
135 - I also intend to "merge" lines (as is often used for generalizations: a
136   line with one arrow, which splits into two lines, one for each subclass)
137
138 - The text editing also needs a facelift.
139
Note: See TracBrowser for help on using the browser.