Changeset 1121
- Timestamp:
- 01/16/07 00:08:39 (2 years ago)
- Files:
-
- gaphor/trunk/ChangeLog (modified) (1 diff)
- gaphor/trunk/NEWS (modified) (1 diff)
- gaphor/trunk/TODO (modified) (7 diffs)
- gaphor/trunk/data/plugins/pdfexport/__init__.py (modified) (2 diffs)
- gaphor/trunk/data/plugins/pngexport/pngexport.py (modified) (1 diff)
- gaphor/trunk/data/plugins/svgexport/__init__.py (modified) (2 diffs)
- gaphor/trunk/data/plugins/xmiexport/exportmodel.py (modified) (1 diff)
- gaphor/trunk/doc/items.tex (modified) (10 diffs)
- gaphor/trunk/gaphor/README (copied) (copied from gaphor/branches/new-canvas/gaphor/README)
- gaphor/trunk/gaphor/UML/__init__.py (modified) (1 diff)
- gaphor/trunk/gaphor/UML/diagram.py (modified) (5 diffs)
- gaphor/trunk/gaphor/UML/element.py (modified) (5 diffs)
- gaphor/trunk/gaphor/UML/elementfactory.py (modified) (10 diffs)
- gaphor/trunk/gaphor/UML/event.py (copied) (copied from gaphor/branches/new-canvas/gaphor/UML/event.py)
- gaphor/trunk/gaphor/UML/interfaces.py (copied) (copied from gaphor/branches/new-canvas/gaphor/UML/interfaces.py)
- gaphor/trunk/gaphor/UML/tests (copied) (copied from gaphor/branches/new-canvas/gaphor/UML/tests)
- gaphor/trunk/gaphor/UML/tests/__init__.py (copied) (copied from gaphor/branches/new-canvas/gaphor/UML/tests/__init__.py)
- gaphor/trunk/gaphor/UML/tests/test_elementfactory.py (copied) (copied from gaphor/branches/new-canvas/gaphor/UML/tests/test_elementfactory.py)
- gaphor/trunk/gaphor/UML/tests/test_properties.py (copied) (copied from gaphor/branches/new-canvas/gaphor/UML/tests/test_properties.py)
- gaphor/trunk/gaphor/UML/tests/test_uml2.py (copied) (copied from gaphor/branches/new-canvas/gaphor/UML/tests/test_uml2.py)
- gaphor/trunk/gaphor/UML/tests/test_umllex.py (copied) (copied from gaphor/branches/new-canvas/gaphor/UML/tests/test_umllex.py)
- gaphor/trunk/gaphor/UML/uml2.gaphor (modified) (1 diff)
- gaphor/trunk/gaphor/UML/umllex.py (modified) (21 diffs)
- gaphor/trunk/gaphor/__init__.py (modified) (2 diffs)
- gaphor/trunk/gaphor/actions (copied) (copied from gaphor/branches/new-canvas/gaphor/actions)
- gaphor/trunk/gaphor/actions/__init__.py (copied) (copied from gaphor/branches/new-canvas/gaphor/actions/__init__.py)
- gaphor/trunk/gaphor/actions/diagramactions.py (copied) (copied from gaphor/branches/new-canvas/gaphor/actions/diagramactions.py)
- gaphor/trunk/gaphor/actions/editoractions.py (copied) (copied from gaphor/branches/new-canvas/gaphor/actions/editoractions.py)
- gaphor/trunk/gaphor/actions/itemactions.py (copied) (copied from gaphor/branches/new-canvas/gaphor/actions/itemactions.py)
- gaphor/trunk/gaphor/actions/mainactions.py (copied) (copied from gaphor/branches/new-canvas/gaphor/actions/mainactions.py)
- gaphor/trunk/gaphor/actions/placementactions.py (copied) (copied from gaphor/branches/new-canvas/gaphor/actions/placementactions.py)
- gaphor/trunk/gaphor/actions/tests (copied) (copied from gaphor/branches/new-canvas/gaphor/actions/tests)
- gaphor/trunk/gaphor/actions/tests/__init__.py (copied) (copied from gaphor/branches/new-canvas/gaphor/actions/tests/__init__.py)
- gaphor/trunk/gaphor/actions/tests/test_itemactions.py (copied) (copied from gaphor/branches/new-canvas/gaphor/actions/tests/test_itemactions.py)
- gaphor/trunk/gaphor/actions/tests/test_placementactions.py (copied) (copied from gaphor/branches/new-canvas/gaphor/actions/tests/test_placementactions.py)
- gaphor/trunk/gaphor/adapters (copied) (copied from gaphor/branches/new-canvas/gaphor/adapters)
- gaphor/trunk/gaphor/adapters/__init__.py (copied) (copied from gaphor/branches/new-canvas/gaphor/adapters/__init__.py)
- gaphor/trunk/gaphor/adapters/connectors.py (copied) (copied from gaphor/branches/new-canvas/gaphor/adapters/connectors.py)
- gaphor/trunk/gaphor/adapters/editors.py (copied) (copied from gaphor/branches/new-canvas/gaphor/adapters/editors.py)
- gaphor/trunk/gaphor/adapters/tests (copied) (copied from gaphor/branches/new-canvas/gaphor/adapters/tests)
- gaphor/trunk/gaphor/adapters/tests/__init__.py (copied) (copied from gaphor/branches/new-canvas/gaphor/adapters/tests/__init__.py)
- gaphor/trunk/gaphor/adapters/tests/test_connector.py (copied) (copied from gaphor/branches/new-canvas/gaphor/adapters/tests/test_connector.py)
- gaphor/trunk/gaphor/adapters/tests/test_editor.py (copied) (copied from gaphor/branches/new-canvas/gaphor/adapters/tests/test_editor.py)
- gaphor/trunk/gaphor/diagram/README (modified) (1 diff)
- gaphor/trunk/gaphor/diagram/__init__.py (modified) (3 diffs)
- gaphor/trunk/gaphor/diagram/action.py (modified) (1 diff)
- gaphor/trunk/gaphor/diagram/activitynodes.py (modified) (6 diffs)
- gaphor/trunk/gaphor/diagram/actor.py (modified) (2 diffs)
- gaphor/trunk/gaphor/diagram/align.py (deleted)
- gaphor/trunk/gaphor/diagram/artifact.py (modified) (3 diffs)
- gaphor/trunk/gaphor/diagram/association.py (modified) (20 diffs)
- gaphor/trunk/gaphor/diagram/attribute.py (deleted)
- gaphor/trunk/gaphor/diagram/classifier.py (modified) (11 diffs)
- gaphor/trunk/gaphor/diagram/comment.py (modified) (3 diffs)
- gaphor/trunk/gaphor/diagram/commentline.py (modified) (3 diffs)
- gaphor/trunk/gaphor/diagram/component.py (modified) (3 diffs)
- gaphor/trunk/gaphor/diagram/connector.py (modified) (2 diffs)
- gaphor/trunk/gaphor/diagram/dependency.py (modified) (4 diffs)
- gaphor/trunk/gaphor/diagram/diagramitem.py (modified) (11 diffs)
- gaphor/trunk/gaphor/diagram/diagramline.py (modified) (5 diffs)
- gaphor/trunk/gaphor/diagram/elementitem.py (modified) (1 diff)
- gaphor/trunk/gaphor/diagram/extend.py (modified) (1 diff)
- gaphor/trunk/gaphor/diagram/extension.py (modified) (7 diffs)
- gaphor/trunk/gaphor/diagram/feature.py (modified) (2 diffs)
- gaphor/trunk/gaphor/diagram/flow.py (modified) (11 diffs)
- gaphor/trunk/gaphor/diagram/font.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/font.py)
- gaphor/trunk/gaphor/diagram/generalization.py (modified) (2 diffs)
- gaphor/trunk/gaphor/diagram/groupable.py (modified) (2 diffs)
- gaphor/trunk/gaphor/diagram/implementation.py (modified) (2 diffs)
- gaphor/trunk/gaphor/diagram/include.py (modified) (1 diff)
- gaphor/trunk/gaphor/diagram/interaction.py (modified) (2 diffs)
- gaphor/trunk/gaphor/diagram/interface.py (modified) (5 diffs)
- gaphor/trunk/gaphor/diagram/interfaceicon.py (modified) (4 diffs)
- gaphor/trunk/gaphor/diagram/interfaces.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/interfaces.py)
- gaphor/trunk/gaphor/diagram/itemactions.py (deleted)
- gaphor/trunk/gaphor/diagram/items.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/items.py)
- gaphor/trunk/gaphor/diagram/itemtool.py (deleted)
- gaphor/trunk/gaphor/diagram/klass.py (modified) (8 diffs)
- gaphor/trunk/gaphor/diagram/lifeline.py (modified) (1 diff)
- gaphor/trunk/gaphor/diagram/message.py (modified) (1 diff)
- gaphor/trunk/gaphor/diagram/nameditem.py (modified) (2 diffs)
- gaphor/trunk/gaphor/diagram/node.py (modified) (3 diffs)
- gaphor/trunk/gaphor/diagram/objectnode.py (modified) (4 diffs)
- gaphor/trunk/gaphor/diagram/operation.py (deleted)
- gaphor/trunk/gaphor/diagram/package.py (modified) (2 diffs)
- gaphor/trunk/gaphor/diagram/placementactions.py (deleted)
- gaphor/trunk/gaphor/diagram/placementtool.py (deleted)
- gaphor/trunk/gaphor/diagram/rotatable.py (modified) (4 diffs)
- gaphor/trunk/gaphor/diagram/style.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/style.py)
- gaphor/trunk/gaphor/diagram/tests (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tests)
- gaphor/trunk/gaphor/diagram/tests/__init__.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tests/__init__.py)
- gaphor/trunk/gaphor/diagram/tests/test_action.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tests/test_action.py)
- gaphor/trunk/gaphor/diagram/tests/test_activitynodes.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tests/test_activitynodes.py)
- gaphor/trunk/gaphor/diagram/tests/test_association.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tests/test_association.py)
- gaphor/trunk/gaphor/diagram/tests/test_class.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tests/test_class.py)
- gaphor/trunk/gaphor/diagram/tests/test_diagramitem.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tests/test_diagramitem.py)
- gaphor/trunk/gaphor/diagram/tests/test_handletool.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tests/test_handletool.py)
- gaphor/trunk/gaphor/diagram/tests/test_interface.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tests/test_interface.py)
- gaphor/trunk/gaphor/diagram/tests/test_interfaces.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tests/test_interfaces.py)
- gaphor/trunk/gaphor/diagram/tests/test_style.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tests/test_style.py)
- gaphor/trunk/gaphor/diagram/tool.py (copied) (copied from gaphor/branches/new-canvas/gaphor/diagram/tool.py)
- gaphor/trunk/gaphor/diagram/usecase.py (modified) (1 diff)
- gaphor/trunk/gaphor/diagram/util.py (deleted)
- gaphor/trunk/gaphor/interfaces.py (modified) (1 diff)
- gaphor/trunk/gaphor/misc/action.py (modified) (5 diffs)
- gaphor/trunk/gaphor/misc/ipair.py (copied) (copied from gaphor/branches/new-canvas/gaphor/misc/ipair.py)
- gaphor/trunk/gaphor/misc/logger.py (modified) (2 diffs)
- gaphor/trunk/gaphor/misc/meta.py (deleted)
- gaphor/trunk/gaphor/misc/singleton.py (deleted)
- gaphor/trunk/gaphor/parser.py (modified) (3 diffs)
- gaphor/trunk/gaphor/storage.py (modified) (18 diffs)
- gaphor/trunk/gaphor/tests (copied) (copied from gaphor/branches/new-canvas/gaphor/tests)
- gaphor/trunk/gaphor/tests/test_storage.py (copied) (copied from gaphor/branches/new-canvas/gaphor/tests/test_storage.py)
- gaphor/trunk/gaphor/ui/diagramactions.py (deleted)
- gaphor/trunk/gaphor/ui/diagramtab.py (modified) (9 diffs)
- gaphor/trunk/gaphor/ui/diagramview.py (modified) (2 diffs)
- gaphor/trunk/gaphor/ui/editoractions.py (deleted)
- gaphor/trunk/gaphor/ui/mainactions.py (deleted)
- gaphor/trunk/gaphor/ui/mainwindow.py (modified) (9 diffs)
- gaphor/trunk/gaphor/ui/menufactory.py (modified) (1 diff)
- gaphor/trunk/gaphor/ui/namespace.py (modified) (1 diff)
- gaphor/trunk/gaphor/ui/objectinspector.py (modified) (6 diffs)
- gaphor/trunk/gaphor/ui/tests (copied) (copied from gaphor/branches/new-canvas/gaphor/ui/tests)
- gaphor/trunk/gaphor/ui/tests/__init__.py (copied) (copied from gaphor/branches/new-canvas/gaphor/ui/tests/__init__.py)
- gaphor/trunk/gaphor/ui/tests/test_diagramtab.py (copied) (copied from gaphor/branches/new-canvas/gaphor/ui/tests/test_diagramtab.py)
- gaphor/trunk/gaphor/ui/tests/test_mainwindow.py (copied) (copied from gaphor/branches/new-canvas/gaphor/ui/tests/test_mainwindow.py)
- gaphor/trunk/gaphor/ui/tests/test_namespace.py (copied) (copied from gaphor/branches/new-canvas/gaphor/ui/tests/test_namespace.py)
- gaphor/trunk/gaphor/ui/toolbox.py (modified) (7 diffs)
- gaphor/trunk/gaphor/ui/wrapbox.py (modified) (3 diffs)
- gaphor/trunk/gaphor/undomanager.py (modified) (2 diffs)
- gaphor/trunk/gaphor/version.py (copied) (copied from gaphor/branches/new-canvas/gaphor/version.py)
- gaphor/trunk/po/ca.po (modified) (3 diffs)
- gaphor/trunk/po/es.po (modified) (3 diffs)
- gaphor/trunk/po/nl.po (modified) (3 diffs)
- gaphor/trunk/po/sv.po (modified) (3 diffs)
- gaphor/trunk/pylintrc (copied) (copied from gaphor/branches/new-canvas/pylintrc)
- gaphor/trunk/run-gaphor.sh (modified) (1 diff)
- gaphor/trunk/setup.py (modified) (15 diffs)
- gaphor/trunk/tests/gaphortests.py (deleted)
- gaphor/trunk/tests/test-activitynodes.py (deleted)
- gaphor/trunk/tests/test-association.py (deleted)
- gaphor/trunk/tests/test-diagram.py (deleted)
- gaphor/trunk/tests/test-elemfact.py (deleted)
- gaphor/trunk/tests/test-ns.py (deleted)
- gaphor/trunk/tests/test-properties.py (deleted)
- gaphor/trunk/tests/test-uml2.py (deleted)
- gaphor/trunk/updcl (copied) (copied from gaphor/branches/new-canvas/updcl)
- gaphor/trunk/utils/build_mo.py (modified) (2 diffs)
- gaphor/trunk/utils/build_pot.py (modified) (5 diffs)
- gaphor/trunk/utils/coverage.py (copied) (copied from gaphor/branches/new-canvas/utils/coverage.py)
- gaphor/trunk/utils/dist_mo.py (deleted)
- gaphor/trunk/utils/genUML.py (deleted)
- gaphor/trunk/utils/genUML2.py (modified) (4 diffs)
- gaphor/trunk/utils/install_mo.py (modified) (3 diffs)
- gaphor/trunk/zope/interface/common/interfaces.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gaphor/trunk/ChangeLog
r930 r1121 1 2006-11-20 arjan <arjan at yirdis dot nl> 2 3 * gaphor/storage.py: loading/saving works 4 * gaphor/adapters/connector.py: added connector for 5 commentline-diagramline. 6 * gaphor/diaram/diagramitem.py: made delete operation work. 7 8 2006-11-14 arjan <arjan at yirdis dot nl> 9 10 * setup.py: incremented version to 0.9.0 11 12 2006-10-30 arjan <arjan at yirdis dot nl> 13 14 * gaphor/storage.py: some updates, time to get it working again. 15 * gaphor/tests/test_storage.py: unit tests for storage.py 16 * tests/*: moved several tests to gaphor/*/tests directory 17 18 2006-10-24 arjan <arjan at yirdis dot nl> 19 20 * gaphor/diagram/association.py: Made direction and name drawing work. 21 * gaphor/diagram/diagramline.py: make lines easier to select (fuzzyness) 22 23 2006-10-17 arjan <arjan at yirdis dot nl> 24 25 * gaphor/adapters/editor.py: Added Association editor. 26 27 2006-09-29 arjan <arjan at yirdis dot nl> 28 29 * gaphor/actions/placementactions.py: enabled Association 30 * gaphor/diagram/association.py: partly works w/ gaphas 31 * gaphor/diagram/items.py: added association 32 33 2006-09-27 arjan <arjan at yirdis dot nl> 34 35 * gaphor/diagram/artifact.py: works now 36 * gaphor/diagram/component.py: works now 37 * gaphor/diagram/node.py: works now 38 39 2006-09-26 arjan <arjan at yirdis dot nl> 40 41 * gaphor/UML/elementfactory.py: select() now returns an iterator 42 * gaphor/actions/itemactions.py: 43 * gaphor/actions/placementactions.py: placement for ExtensionItem 44 * gaphor/actions/tests/test_placementactions.py: ... and tests 45 * gaphor/adapters/connectors.py: Connector for ExtensionItem 46 * gaphor/adapters/tests/test_connector.py: 47 * gaphor/diagram/diagramitem.py: removed set_subject() 48 * gaphor/diagram/extension.py: works 49 * setup.py: added unittest 50 51 2006-09-20 arjan <arjan at yirdis dot nl> 52 53 * utils/genUML.py: Removed. 54 * gaphor/ui/objectinspector.py: Use classes for adaption, in stead 55 of interfaces. Also removed interfaces from 56 gaphor/diagram/interfaces.py. 57 * gaphor/diagram/interfaces.py: cleaned up IDiagramElement interfaces. 58 * gaphor/ui/objectinspector.py: Updated to use classes iso interfaces 59 60 2006-09-19 arjan <arjan at yirdis dot nl> 61 62 * gaphor/diagram/items.py: New file. Gathered all *Item imports here 63 (used to be in gaphor/diagram/__init__.py) 64 * gaphor/actions/placementactions.py: Added actions for Include/Extends 65 * gaphor/actions/tests/test_placementactions.py: .. and tests 66 * gaphor/adapters/connectors.py: added connectors for Generalization, 67 Inlcude, Extend. 68 * gaphor/diagram/dependency.py: Cleanup 69 * gaphor/diagram/extend.py: Converted to new canvas 70 * gaphor/diagram/generalization.py: idem 71 * gaphor/diagram/implementation.py: idem 72 * gaphor/diagram/include.py: idem 73 74 2006-09-14 arjan <arjan at yirdis dot nl> 75 76 * gaphor/UML/tests/__init__.py: New file. 77 * gaphor/actions/tests/__init__.py: New file. 78 * gaphor/adapters/tests/__init__.py: New file. 79 * gaphor/diagram/tests/__init__.py: New file. 80 * gaphor/ui/tests/__init__.py: New file. 81 * setup.py: Implemented 'tests' target - runs all unit tests 82 * gaphor/*/tests/test_*.py: Updated to work well with overall test suite 83 84 2006-09-13 arjan <arjan at yirdis dot nl> 85 86 * updcl: New file. use this for easy updating of the changelog file. 87 Add a .developer to this directory with name and email. 88 89 2006-09-13 arjan <arjan at yirdis dot nl> 90 91 * gaphor/diagram/comment.py: fixed text rendering (mutiline) 92 * gaphor/diagram/interface.py: changed some code (box drawing now works) 93 94 2006-09-11 arjan <arjan at yirdis dot nl> 95 96 * gaphor/adapters: moved adapters from gaphor.diagram to this 97 separate package. 98 * gaphor/actions: collected all Action classes in one package. 99 100 2006-09-05 arjan <arjan at yirdis dot nl> 101 102 * gaphor/diagram/classifier.py, gaphor/diagram/klass.py: works 103 * gaphor/diagram/package.py: works 104 105 2006-09-03 arjan <arjan at yirdis dot nl> 106 107 * gaphor/diagram/classifier.py: cleanup 108 * gaphor.diagram/klass.py: is now placeable 109 * several fixes, cleanup and improved unit tests 110 111 2006-08-21 arjan <arjan at yirdis dot nl> 112 113 * gaphor/diagram/usecase.py: drawing works 114 115 2006-07-27 arjan <arjan at yirdis dot nl> 116 117 * Connect/disconnect works for comment-commentline 118 * gaphor/diagram/tool.py: Handle tool in place 119 * gaphor/diagram/interfaces.py: IConnect interface 120 * gaphor/diagram/actor.py: works 121 122 2006-07-21 arjan <arjan at yirdis dot nl> 123 124 * gaphor/diagram/comment.py: text editining working 125 * gaphor/diagram/actor.py: draws 126 127 2006-07-19 arjan <arjan at yirdis dot nl> 128 129 * gaphor/diagram/placementtool.py: works with Gaphas 130 * gaphor/diagram/comment.py: can be placed on new canvas 131 * gaphor/ui/*, gaphor/UML/*: use gaphas instead of diacanvas 132 133 2006-07-07 arjan <arjan at yirdis dot nl> 134 135 * utils/coverage.py: new module for code coverage. 136 * setup.py: added --coverage option ro the run command, allowing for 137 code coverage output. 138 1 139 2006-06-07 arjan <arjan at yirdis dot nl> 2 140 gaphor/trunk/NEWS
r757 r1121 1 0.9.0 2 ----- 3 - New pure-python canvas implementation (gaphas) 4 - Zope Adapters used for item connections 5 - Undo managements temporaly disabled 6 - Added loads of unit tests 7 NOTE: if you have Zope 3 installed it's probably not a good idea to install 8 Gaphor too, since Gaphor tries to install Zope3 packages too. 9 Don't worry, you can run Gaphor perfectly well using the run-gaphor.sh 10 script. 11 1 12 0.8.1 2 13 ----- gaphor/trunk/TODO
r933 r1121 1 1 2 !!! Create some example diagrams, 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, 3 11 4 12 - using stereotypes 5 - associations6 13 - components and stuff 7 14 8 ======== stereotypes branch ========= 9 - namedelement.py: from NamedElement 10 - items.tex: describe: 11 - __uml__ 12 - __stereotype__ 13 - __fixed_stereotype__ 14 ===== end of stereotypes branch ===== 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. 15 18 16 ======= 0.8.0 ======== 17 - load uml2.gaphor and open other file or split flows and undo/redo. 18 exception is raised. seems to be related to diagram item unlinking. 19 - Use actions only for action definitions. use Events for notification 20 between actions. 19 21 20 Traceback (most recent call last): 21 File "build/lib/gaphor/diagram/diagramitem.py", line 163, in disconnect 22 ids = self.__handler_to_id[key] 23 KeyError: (<bound method association.__on_unlink of <gaphor.UML.properties.association object at 0x3034e030>>, <gaphor.UML.uml2.ControlFlow object at 0x3083b150>) 22 - namedelement.py: from NamedElement 23 - items.tex: describe: 24 - __uml__ 25 - __stereotype__ 26 - __fixed_stereotype__ 24 27 25 ======= End of 0.8.0 ======== 26 27 As always, there is much to do... 28 Older (long term ;) todo items: 29 ------------------------------- 28 30 29 31 - At this point we have three event systems: 30 1. GObject - used by GTK+, should be restricted to the GUI31 32 2. Actions - used for (pseudo) menu actions (artifical actions are triggered 32 33 some times (e.g. to notify about changes in the Undo Manager) … … 35 36 change. 36 37 37 GObject will stay as long as we use GTK+. Restrict it's influence to the GUI.38 (to much management overhead)39 38 Actions work fine, for menu actions. Gaphor specific and should work 40 39 with the GTK+ menu manager classes. 41 40 Zope classes are quite optimized. However, mainly provides the same 42 41 functionality as Actions, but not as fine grained. 43 44 - Check association removal when connected to a class.45 42 46 43 - Add meta data (such as text alignment) to the model file (add a meta: … … 53 50 Should use meta-classes for registration too (define __abstract__ or\something to prevent registration). 54 51 55 #- Store application state:56 #- last opened files57 #- open/closed status of diagram toolbox58 #- window size59 #- reset tool option60 61 #- When Stereotype has no submenu items, grey it out. Same goes for "Export"62 menu. This will be handled by the UIManager in the near future.63 64 52 - disable actions when editing. 65 53 … … 70 58 - Stereotype export and import function. Allow to export packages and import 71 59 them into other models. 72 73 #- Create distinctive icons for Include and Extend relationships (use cases).74 60 75 61 - How to figure out if a module exists without loading it? … … 105 91 Previous conclusion: keep using the gaphor.misc.action code 106 92 107 #- Storing last open files or having a quick-list of most important 108 directories or so would be great 109 Problem: the existing <Placeholder> stuff works only on construction time. 110 For this we need a menu that can change during the life of the application. 111 112 #- Make associations look nice with usecases: 113 . No arrows at the end 114 . Disable popup menu for navigability and composition 115 116 #- Automatically draw relations when an item is DND-ed from the tree-view 93 - Automatically draw relations when an item is DND-ed from the tree-view 117 94 to the diagram. 118 95 119 #- confirmation window when creating a new model. 120 121 #- Copy/Paste for diagramitems 96 - Copy/Paste for diagramitems 122 97 - in order to make copy/paste work, the load/save functions should be 123 98 generatlised to allow a subset to be saved/loaded (which is needed … … 128 103 on the canvas and make the uml element visible again. 129 104 130 #- Undo/redo functionality 131 132 #- Make text selected when starting to edit it: fixed in DiaCanvas2 105 - Undo/redo functionality 133 106 134 107 #- Stereotypes: check documentation page 581 (597 absolute). Fixed. An extra 135 108 association has been created between Stereotype and Class, Interface and 136 109 Package. 137 138 #- Set up a plugin architecture. Since the internals of gaphor are pretty139 modular, plugins should not be that hard. I'm very happy with the new one140 it is easy to program, yet powerful (due to the XML description file, which141 allows gaphor to check several dependencies upfront.142 110 143 111 Diagram Items … … 170 138 - The text editing also needs a facelift. 171 139 172 #- Alert a user when deleting the last reference to an object (Are you173 sure you want to remove all the selected elements from the model?)174 gaphor/trunk/data/plugins/pdfexport/__init__.py
r720 r1121 2 2 3 3 import gtk 4 import diacanvas4 #import diacanvas 5 5 6 6 import cairo … … 20 20 log.debug('Exporting PDF image to: %s' % filename) 21 21 canvas = self.get_window().get_current_diagram_tab().get_canvas() 22 svg = diacanvas.ExportSVG()22 #svg = diacanvas.ExportSVG() 23 23 try: 24 24 # first, export to svg 25 25 fd, svg_name = tempfile.mkstemp() 26 svg = diacanvas.ExportSVG()26 #svg = diacanvas.ExportSVG() 27 27 svg.render(canvas) 28 28 svg.save(svg_name) gaphor/trunk/data/plugins/pngexport/pngexport.py
r720 r1121 3 3 from gaphor.plugin import DiagramExportAction 4 4 5 import diacanvas5 #import diacanvas 6 6 import gtk 7 7 gaphor/trunk/data/plugins/svgexport/__init__.py
r720 r1121 2 2 3 3 import gtk 4 import diacanvas4 #import diacanvas 5 5 from gaphor.plugin import DiagramExportAction 6 6 … … 13 13 log.debug('Exporting SVG image to: %s' % filename) 14 14 canvas = self.get_window().get_current_diagram_tab().get_canvas() 15 export = diacanvas.ExportSVG()15 #export = diacanvas.ExportSVG() 16 16 try: 17 17 export.render (canvas) gaphor/trunk/data/plugins/xmiexport/exportmodel.py
r573 r1121 192 192 attributes['ownerScope']='instance' 193 193 attributes['isQuery']='false' 194 attributes['concurrency']='seq euntial'194 attributes['concurrency']='sequential' 195 195 attributes['isRoot']='false' 196 196 attributes['isLeaf']='false' gaphor/trunk/doc/items.tex
r926 r1121 1 \documentclass [draft]{book}1 \documentclass{book} 2 2 \usepackage[papername = a4paper, margin = 3cm]{geometry} 3 3 \usepackage{graphicx} 4 4 \usepackage{hyperref} 5 \usepackage{listings} 6 \usepackage{float} 5 7 6 8 \title{Gaphor Diagram Item Model} 7 9 \author{wrobell@pld-linux.org} 10 11 \newfloat{code}{th}{code} 12 13 \lstnewenvironment{pylst}{\lstset{language=Python}}{} 8 14 9 15 \newcommand{\rmodule}[1]{\texttt{#1}} … … 96 102 \section{Introduction} 97 103 UML specification defines UML data model, which is used by Gaphor to store 98 information about modeled system. UML data model is visualized with99 Diacanvas library used as canvaslibrary. Notation100 of UML diagram items is also specified by UML specification.101 102 Diacanvas library supports basic drawing operations but there are many104 information about a modeled system. The UML data model is visualized by 105 the Gaphas library, a general purpose diagram drawing library. Notation 106 of UML diagram items is also specified by the UML specification. 107 108 The Gaphas library supports basic drawing operations but there are many 103 109 entities and behaviors, which are common to many or all diagram items, i.e. 104 stereotypes, item s'name, popup menu, positioning of associated items, etc.110 stereotypes, item name, popup menu, positioning of associated items, etc. 105 111 106 112 We have to identify common elements and behaviors of UML diagram items … … 108 114 by Gaphor to provide modeling functionality. 109 115 116 Note that, the diagram item hierarchy does not have to follow the hierarchy 117 defined in the UML model. 118 110 119 \section{Problem Description} 111 120 … … 117 126 \end{itemize} 118 127 119 Because of differences between them, DiagramItem class cannot be directly 120 associated with canvas line or canvas element. Connection between diacanvas 121 classes and items has to be established by different abstract classes. 128 Because of differences between them, Basic diagram item class cannot be 129 directly associated with canvas lines or canvas elements. Connection between 130 canvas classes and items has to be established by different abstract 131 classes. 122 132 123 133 \subsection{Items and UML Model Classes} 124 Generaly there is one to one association between an item and UML class125 but it is not always sosimple.134 Generaly there is a one to one association between an item and an UML class, 135 but it is not always that simple. 126 136 For example one diagram item can visualize more than one UML class 127 137 \begin{itemize} … … 131 141 132 142 Also, there can be situation, when there is no UML class visualized, i.e. 133 in case of CommentLine.143 in case of a CommentLine. 134 144 135 145 \subsection{Line Items} 136 Line has at least two handles. These handles are refferedas head (first137 handle) and tail ( secondhandle) of line.138 139 When user puts an item on a diagram, thenlast handle can be moved to140 desired point. The same applies to line items. User putsline on diagram,146 Lines have at least two handles. These handles are reffered to as head (first 147 handle) and tail (last handle) of line. 148 149 When a user puts an item on a diagram, then the last handle can be moved to 150 a desired point. The same applies to line items. User puts a line on diagram, 141 151 head is set in mouse cursor point and tail is moved to desired point. 142 152 143 Head and tail concepts are also used in diacanvas in case of canvas line.153 Head and tail concepts are also used in Gaphas in case of canvas lines. 144 154 Head of line item is at the same end as head of canvas line. The same 145 155 applies for tail. 146 156 157 \subsection{Item Styles}\label{itemstyles} 158 All the items are going to contain different parts. 159 Many of such parts can be shared by other items, for example 160 \begin{itemize} 161 \item UML named elements (see named items) have names, which 162 can be displayed in different places, i.e. class --- top--center, 163 use case --- middle--center 164 \item every UML class can have stereotypes, which should be displayed 165 over items' name 166 \end{itemize} 167 168 Above can be described as styles (i.e.\ similar to CSS). 169 170 It should be possible to implement common behaviour in basic item classes, 171 which should be parametrized by item's style information. For example, 172 named element item should set position of name depending on styles. 173 174 \section{Styles} 175 Class \rclass{ElementItem} defined below should define following styles 176 \begin{description} 177 \item[min--size] minimal size of an item; minimal width and height are 178 initialized using this style information 179 \end{description} 180 147 181 \section{Classes} 148 182 \rclass{DiagramItem} class is a basic, abstract class for all items. Every 149 item class is created using \rclass{DiagramItemMeta} metaclass. It 150 assigns information about UML class, stereotypes, 151 etc.\ to every item class. 183 item class is created using \rclass{DiagramItemMeta} metaclass. 152 184 153 185 Different canvas elements (see~\ref{gaphor:basic:itemsandcanvas}) are … … 164 196 \iattr{\_\_uml\_\_}{UML class associated with item} 165 197 \iattr{\_\_stereotype\_\_}{item static stereotype} 166 \iattr{s\_align}{stereotype align} 198 \iattr{\_\_style\_\_}{used to define new and override item style information} 199 \iattr{style}{used to obtain item style information, also information derived from base classes} 167 200 \end{attrs} 168 201 \begin{entitydesc} 169 Basic metaclass for all items. Stereotypes are aligned according to 170 \rattr{s\_align} attribute.202 Metaclass for all items. Assigns information about UML class, stereotypes, 203 styles, etc.\ to every item class. 171 204 \end{entitydesc} 172 205 \end{class} … … 186 219 \iattr{head}{reference to head handle of a line} 187 220 \iattr{tail}{reference to tail handle of a line} 188 \iattr{s\_align}{stereotype align}189 221 \end{attrs} 190 222 \begin{entitydesc} … … 194 226 195 227 \begin{class}{ElementItem} 228 \begin{attrs} 229 \iattr{min\_width}{minimal item width} 230 \iattr{min\_height}{minimal item height} 231 \end{attrs} 196 232 \begin{entitydesc} 197 233 Canvas element based items like class, component, lifeline, 198 234 comment, activity nodes, etc. 235 236 Minimal width and height are initialized from minimal size style 237 information. These two values can change during item lifecycle (i.e.\ name 238 can be expanded or shrinked), therefore minimal size style information 239 guards initial minimal dimensions of element item. 199 240 \end{entitydesc} 200 241 \end{class} … … 264 305 Align constants and classes are defined in \rmodule{gaphor::diagram::align} module. 265 306 266 \subsection{Stereotype and Name Align }307 \subsection{Stereotype and Name Alignment} 267 308 268 309 There are two important elements of items … … 283 324 284 325 \chapter{Named Items} 285 \section{Introduction} 286 Named items represent these UML classes, which derive from NamedElement. 326 \section{Problem Description} 327 Named items represent those UML classes, which derive from NamedElement. 328 287 329 All named items are editable, so user can double click on an item and 288 330 change or enter name of UML object. 289 331 290 We have to distinguish between two kind of named elements. One is related 291 to canvas elements and second is related to canvas lines. For example, name 292 of UML object can be positioned inside or outside canvas element (class vs. 293 initial node), also name can be centered or on left/right side of canvas 294 element. In case of canvas line based items name can be near head, tail 295 or centre of a line and name can be put horizontaly or along line path. 296 297 \section{Problem Description} 298 \subsection{Canvas Element Named Items} 299 300 \subsection{Canvas Line Named Items} 332 There should be minimal size (which is default, initial one) of named 333 items. Every named item can have its own minimal size. Size of named item 334 can be changed by an user. There are some cases, when size cannot be 335 changed, i.e. initial node item. 336 337 It should be possible to align name of named element with styles 338 (see~\ref{itemstyles}) as depending on an element, the name can be 339 displayed in different places related to an item, i.e. 340 \begin{itemize} 341 \item class --- top center 342 \item use case --- middle center 343 \item object node --- middle center 344 \item actor --- bottom center, outside item bounduaries 345 \item initial action node --- top left, outside item bounduaries 346 \item decision node --- bottom center, outside item bounduaries 347 \end{itemize} 348 349 %fixme: there can be items with initial name and without initial name 350 351 \section{Styles} 352 Kind of information we need to align the name 353 \begin{itemize} 354 \item horizontal align information (left, center or right) 355 \item vertical align information (top, middle or bottom) 356 \item padding specified as in CSS (top right bottom left) 357 \item is name outside an item? 358 \end{itemize} 359 360 Styles for name align are defined in table~\ref{nameditems:styles:spec} 361 (see diagram~\ref{nameditems:styles:example} for example). 362 363 \begin{table} 364 \begin{center} 365 \begin{tabular}{|l|l|l|} 366 \hline 367 Name & Default value & Description \\ 368 \hline 369 name--align & ('center', 'top') & align information \\ 370 name--padding & (5, 5, 5, 5) & name padding \\ 371 name--outside & False & name outside/inside item bounduaries \\ 372 \hline 373 \end{tabular} 374 \caption{Specification of name align styles}\label{nameditems:styles:spec} 375 \end{center} 376 \end{table} 377 378 \begin{code} 379 \lstset{language={Python}} 380 \begin{pylst} 381 class NamedItem(DiagramItem): 382 __style__ = { 383 'name-align' : ('center', 'top'), 384 'name-padding': (5, 5, 5, 5), 385 'name-outside': False, 386 } 387 \end{pylst} 388 \caption{Named items style example}\label{nameditems:styles:example} 389 \end{code} 390  
