As always, there is much to do...

- Storing last open files or having a quick-list of most important
  directories or so would be great 
  Problem: the existing <Placeholder> stuff works only on constrcution time.
    For this we need a menu that can change during the life of the application.

- 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.

- Create distinctive icons for Include and Extend relationships (use cases).

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

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

- fix accelarators (HOW?), partially done, accelerators on items in popup menus
  does not work.
  Accelerators should be activated by the (Abstract)Window, should not depend
  on menu items. Intercept Window::key_pressed_event and let it handle
  popup menu actions.

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

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

- Make associations look nice with usecases:
   . No arrows at the end
   . Disable popup menu for navigability and composition

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

#- confirmation window when creating a new model.

#- Copy/Paste for diagramitems
  - in order to make copy/paste work, the load/save functions should be
    generatlised to allow a subset to be saved/loaded (which is needed
    anyway for exporting/importing stereotype Profiles).
  - How many data should be saved? (e.g. we copy a diagram item, remove it
    (the underlaying UML element is removed) and the paste the copied item.
    The diagram should act as if we have placed a copy of the removed item
    on the canvas and make the uml element visible again.

#- Undo/redo functionality

#- Make text selected when starting to edit it: fixed in DiaCanvas2

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

#- Set up a plugin architecture. Since the internals of gaphor are pretty
   modular, plugins should not be that hard. I'm very happy with the new one
   it is easy to program, yet powerful (due to the XML description file, which
   allows gaphor to check several dependencies upfront.

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.

Alert a user when deleting the last reference to an object (Are you sure you want to remove all the selected elements from the model?)
