Changeset 1954
- Timestamp:
- 08/17/07 06:56:35 (1 year ago)
- Files:
-
- gaphor/trunk/gaphor/UML/properties.py (modified) (5 diffs)
- gaphor/trunk/gaphor/ui/mainwindow.py (modified) (7 diffs)
- gaphor/trunk/gaphor/ui/tests/test_namespace.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gaphor/trunk/gaphor/UML/properties.py
r1953 r1954 451 451 raise ValueError, 'Derivedunion: Properties should not be loaded in a derived union %s: %s' % (self.name, value) 452 452 453 453 454 def save(self, obj, save_func): 454 455 pass 455 456 457 456 458 def __str__(self): 457 459 return '<derivedunion %s: %s>' % (self.name, str(map(str, self.subsets))[1:-1]) 460 458 461 459 462 def _get(self, obj): … … 481 484 return u and u[0] or None 482 485 486 483 487 def _set(self, obj, value): 484 488 raise AttributeError, 'Can not set values on a union' 485 489 490 486 491 def _del(self, obj, value=None): 487 492 raise AttributeError, 'Can not delete values on a union' 493 488 494 489 495 @component.adapter(IAssociationChangeEvent) … … 521 527 lower = property(lambda s: s.original.lower) 522 528 529 523 530 def load(self, obj, value): 524 531 if self.original.name == self.name: 525 532 self.original.load(obj, value) 526 533 534 527 535 def save(self, obj, save_func): 528 536 if self.original.name == self.name: 529 537 self.original.save(obj, save_func) 530 538 539 531 540 def __str__(self): 532 541 return '<redefine %s: %s = %s>' % (self.name, self.type.__name__, str(self.original)) 542 533 543 534 544 def __get__(self, obj, class_=None): … … 538 548 return self.original.__get__(obj, class_) 539 549 550 540 551 def __set__(self, obj, value): 541 552 # No longer needed … … 544 555 self.original.__set__(obj, value) 545 556 557 546 558 def __delete__(self, obj, value=None): 547 559 # No longer needed 548 560 self.original.__delete__(obj, value) 549 561 562 550 563 def _get(self, obj): 551 564 return self.original._get(obj) 552 565 566 553 567 def _set(self, obj, value, from_opposite=False): 554 568 return self.original._set(obj, value, from_opposite) 555 569 570 556 571 def _del(self, obj, value, from_opposite=False): 557 572 return self.original._del(obj, value, from_opposite) 573 558 574 559 575 @component.adapter(IAssociationChangeEvent) gaphor/trunk/gaphor/ui/mainwindow.py
r1952 r1954 10 10 11 11 from gaphor import UML 12 from gaphor.core import _, inject, action, radio_action, build_action_group 12 from gaphor.core import _, inject, action, radio_action, build_action_group, transactional 13 13 from namespace import NamespaceModel, NamespaceView 14 14 from diagramtab import DiagramTab … … 63 63 <menu action="diagram"> 64 64 <menuitem action="tree-view-create-diagram" /> 65 <menuitem action="tree-view-create-package" /> 66 <separator /> 65 67 <menuitem action="tree-view-delete-diagram" /> 68 <menuitem action="tree-view-delete-package" /> 66 69 <separator /> 67 70 <placeholder name="primary" /> … … 94 97 <separator /> 95 98 <menuitem action="tree-view-create-diagram" /> 99 <menuitem action="tree-view-create-package" /> 100 <separator /> 96 101 <menuitem action="tree-view-delete-diagram" /> 102 <menuitem action="tree-view-delete-package" /> 97 103 <separator /> 98 104 <menuitem action="tree-view-refresh" /> … … 403 409 element = view.get_selected_element() 404 410 self.action_group.get_action('tree-view-create-diagram').props.sensitive = isinstance(element, UML.Package) 411 self.action_group.get_action('tree-view-create-package').props.sensitive = isinstance(element, UML.Package) 412 413 self.action_group.get_action('tree-view-delete-diagram').props.visible = isinstance(element, UML.Diagram) 414 self.action_group.get_action('tree-view-delete-package').props.visible = isinstance(element, UML.Package) and not element.presentation 415 405 416 self.action_group.get_action('tree-view-open').props.sensitive = isinstance(element, UML.Diagram) 406 417 … … 480 491 481 492 @action(name='tree-view-create-diagram', label=_('_New diagram'), stock_id='gaphor-diagram') 493 @transactional 482 494 def tree_view_create_diagram(self): 483 495 element = self._tree_view.get_selected_element() … … 492 504 493 505 @action(name='tree-view-delete-diagram', label=_('_Delete diagram'), stock_id='gtk-delete') 506 @transactional 494 507 def tree_view_delete_diagram(self): 495 508 diagram = self._tree_view.get_selected_element() … … 506 519 m.destroy() 507 520 521 @action(name='tree-view-create-package', label=_('New _package'), stock_id='gaphor-package') 522 @transactional 523 def tree_view_create_package(self): 524 element = self._tree_view.get_selected_element() 525 package = self.element_factory.create(UML.Package) 526 package.package = element 527 528 package.name = '%s package' % element.name 529 530 self.select_element(package) 531 self.tree_view_rename_selected() 532 533 @action(name='tree-view-delete-package', label=_('Delete pac_kage'), stock_id='gtk-delete') 534 @transactional 535 def tree_view_delete_package(self): 536 package = self._tree_view.get_selected_element() 537 assert isinstance(package, UML.Package) 538 package.unlink() 539 508 540 @action(name='tree-view-refresh', label=_('_Refresh')) 509 541 def tree_view_refresh(self): gaphor/trunk/gaphor/ui/tests/test_namespace.py
r1301 r1954 1 1 # vim:sw=4:et:ai 2 2 3 import unittest 3 from gaphor.tests.testcase import TestCase 4 4 import gaphor.UML as UML 5 5 from gaphor.ui.namespace import NamespaceModel 6 from gaphor.application import Application 6 7 7 class NamespaceTestCase(unittest.TestCase): 8 class NamespaceTestCase(TestCase): 9 10 services = [ 'element_factory' ] 8 11 9 12 def test_all(self): 10 factory = UML.ElementFactory() 13 factory = Application.get_service('element_factory') 14 15 ns = NamespaceModel(factory) 11 16 12 17 m = factory.create(UML.Package) … … 42 47 assert e.namespace is b 43 48 44 45 ns = NamespaceModel(factory) 46 # We have a model loaded. Use it! 47 factory.notify_model() 49 # # We have a model loaded. Use it! 50 # factory.notify_model() 48 51 49 52 print '---' 53 print ns.root 50 54 ns.dump() 51 55 assert ns.path_from_element(m) == (0,) … … 56 60 assert ns.path_from_element(e) == (0, 0, 0, 1) 57 61 62 return 63 64 58 65 print '--- del.b.ownedClassifier[c]' 59 66 del b.ownedClassifier[c] … … 63 70 assert ns.path_from_element(b) == (0, 0, 0) 64 71 assert ns.path_from_element(d) == (0, 0, 1) 65 assert ns.path_from_element(e) == (0, 0, 0, 0) 72 assert ns.path_from_element(e) == (0, 0, 0, 0), ns.path_from_element(e) 66 73 try: 67 74 ns.path_from_element(c) … … 110 117 print UML.Package.ownedClassifier 111 118 119 if __name__ == '__main__': 120 import unittest 121 unittest.main()
