Changeset 1301
- Timestamp:
- 05/22/07 23:40:17 (1 year ago)
- Files:
-
- gaphor/trunk/gaphor/UML/elementfactory.py (modified) (1 diff)
- gaphor/trunk/gaphor/application.py (modified) (1 diff)
- gaphor/trunk/gaphor/diagram/tests/test_flow.py (moved) (moved from gaphor/trunk/tests/test-flows.py) (1 diff)
- gaphor/trunk/gaphor/services/actionmanager.py (modified) (2 diffs)
- gaphor/trunk/gaphor/services/copyservice.py (modified) (4 diffs)
- gaphor/trunk/gaphor/services/pluginmanager.py (deleted)
- gaphor/trunk/gaphor/services/tests/test_copyservice.py (modified) (2 diffs)
- gaphor/trunk/gaphor/services/undomanager.py (modified) (2 diffs)
- gaphor/trunk/gaphor/ui/diagramtab.py (modified) (4 diffs)
- gaphor/trunk/gaphor/ui/event.py (modified) (1 diff)
- gaphor/trunk/gaphor/ui/interfaces.py (modified) (2 diffs)
- gaphor/trunk/gaphor/ui/mainwindow.py (modified) (2 diffs)
- gaphor/trunk/gaphor/ui/objectinspector.py (modified) (1 diff)
- gaphor/trunk/gaphor/ui/tests/test_consolewindow.py (modified) (1 diff)
- gaphor/trunk/gaphor/ui/tests/test_diagramtab.py (modified) (4 diffs)
- gaphor/trunk/gaphor/ui/tests/test_diagramtoolbox.py (modified) (3 diffs)
- gaphor/trunk/gaphor/ui/tests/test_mainwindow.py (modified) (2 diffs)
- gaphor/trunk/gaphor/ui/tests/test_namespace.py (modified) (1 diff)
- gaphor/trunk/gaphor/ui/toolbox.py (modified) (1 diff)
- gaphor/trunk/setup.py (modified) (2 diffs)
- gaphor/trunk/tests/diagram-destroy.py (deleted)
- gaphor/trunk/tests/menu.py (deleted)
- gaphor/trunk/tests/test-modelelement.py (deleted)
- gaphor/trunk/tests/test-umllex.py (deleted)
- gaphor/trunk/tests/test-undo.py (deleted)
- gaphor/trunk/tests/test-wrapbox.py (deleted)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
gaphor/trunk/gaphor/UML/elementfactory.py
r1299 r1301 39 39 40 40 def shutdown(self): 41 pass41 self.flush() 42 42 43 43 def create(self, type): gaphor/trunk/gaphor/application.py
r1276 r1301 87 87 component.handle(ServiceShutdownEvent(name, srv)) 88 88 89 # Re-initialize Zope's global site manager 90 # (cleanup adapters and utilities): 91 try: 92 from zope.component import globalSiteManager 93 globalSiteManager.__init__('base') 94 except Exception, e: 95 log.error('Re-initialization of the Zope SiteManager failed', e) 96 self.__init__() 89 97 90 98 # Make sure there is only one! 91 99 Application = _Application() 92 100 93 def restart():94 global Application95 Application.shutdown()96 Application = _Application()97 98 101 99 102 # vim:sw=4:et:ai gaphor/trunk/gaphor/diagram/tests/test_flow.py
r596 r1301 3 3 import unittest 4 4 import gaphor.UML as UML 5 import gaphortests6 5 7 class TestActivityNodes(gaphortests.TestCase): 6 class TestActivityNodes(unittest.TestCase): 7 8 8 def testObjectFlow(self): 9 9 """ 10 10 Check if flow is object flow when connect to object node. 11 11 """ 12 f = self.createFlow() 12 # f = self.createFlow() 13 # 14 # ai = self.createActionItem() 15 # on = self.createObjectNode() 16 # 17 # self.connectNodes(ai, on, f) 18 # 19 # self.assertEqual(f.subject.__class__, UML.ObjectFlow) 13 20 14 ai = self.createActionItem()15 on = self.createObjectNode()16 17 self.connectNodes(ai, on, f)18 19 self.assertEqual(f.subject.__class__, UML.ObjectFlow)20 gaphor/trunk/gaphor/services/actionmanager.py
r1272 r1301 61 61 action_provider.__ui_merge_id = \ 62 62 self.ui_manager.add_ui_from_string(action_provider.menu_xml) 63 log.debug('Added menu xml %d' % action_provider.__ui_merge_id)64 63 65 64 @component.adapter(ServiceInitializedEvent) … … 68 67 log.debug('Loading registered service %s' % str(event.service)) 69 68 self.register_action_provider(event.service) 70 # Only start registring already registered services once the GUI 71 # is in order (e.i. menu structure is correctly set up) 72 # if event.name == 'gui_manager': 73 # log.info('Loading not yet registered action provider services') 74 # for name, service in component.getUtilitiesFor(IService): 75 # if IActionProvider.providedBy(service): 76 # log.debug('Loading already registered service %s' % str(service)) 77 # self.register_action_provider(service) 69 78 70 79 71 # vim:sw=4:et:ai gaphor/trunk/gaphor/services/copyservice.py
r1299 r1301 1 1 """ 2 TODO: fix this code. 2 Copy / Paste functionality 3 3 """ 4 4 5 5 from zope import interface, component 6 import gaphas 6 7 from gaphor import UML 7 8 from gaphor.interfaces import IService, IActionProvider 8 from gaphor.core import _, inject, action, build_action_group 9 from gaphor.ui.interfaces import IDiagramSelectionChange 10 from gaphor.core import _, inject, action, build_action_group, transactional 11 9 12 10 13 class CopyService(object): … … 43 46 44 47 def __init__(self): 45 self.copy_buffer = []48 self.copy_buffer = set() 46 49 self.action_group = build_action_group(self) 47 50 48 51 def init(self, app): 49 pass 52 self.action_group.get_action('edit-copy').props.sensitive = False 53 self.action_group.get_action('edit-paste').props.sensitive = False 54 55 component.provideHandler(self._update) 50 56 51 def _update_copy(self): 52 diagram_tab = self._window.get_current_diagram_tab() 53 self.sensitive = diagram_tab and len(diagram_tab.get_view().selected_items) > 0 57 def shutdown(self): 58 self.copy_buffer = set() 54 59 55 def _update_paste(self):56 global copy_buffer57 diagram_ tab = self._window.get_current_diagram_tab()58 self. sensitive = diagram_tab and copy_buffer60 @component.adapter(IDiagramSelectionChange) 61 def _update(self, event): 62 diagram_view = event.diagram_view 63 self.action_group.get_action('edit-copy').props.sensitive = bool(diagram_view.selected_items) 59 64 60 61 @action(name='edit-copy', stock_id='gtk-copy') 62 def copy(self): 63 view = self.gui_manager.main_window.get_current_diagram_view() 64 if view.is_focus(): 65 items = view.selected_items 66 copy_items = [] 67 for i in items: 68 copy_items.append(i) 69 if copy_items: 70 self.copy_buffer = copy_items 65 def copy(self, items): 66 if items: 67 self.copy_buffer = set(items) 68 self.action_group.get_action('edit-paste').props.sensitive = True 71 69 72 70 def _load_element(self, name, value): … … 96 94 self._item.load(name, str(value)) 97 95 98 @action(name='edit-paste', stock_id='gtk-paste')99 96 @transactional 100 def paste(self): 101 view = self._window.get_current_diagram_view() 102 diagram = self._window.get_current_diagram() 103 if not view: 104 return 105 106 #diagram = view.get_diagram() 97 def paste(self, diagram): 98 """ 99 Paste items in the copy-buffer to the diagram 100 """ 107 101 canvas = diagram.canvas 108 102 if not canvas: … … 127 121 128 122 for item in self._new_items.values(): 129 item.m ove(10, 10)123 item.matrix.translate(10, 10) 130 124 131 125 for item in self._new_items.values(): 132 126 item.postload() 133 127 128 129 @action(name='edit-copy', stock_id='gtk-copy') 130 def _copy(self): 131 view = self.gui_manager.main_window.get_current_diagram_view() 132 if view.is_focus(): 133 items = view.selected_items 134 copy_items = [] 135 for i in items: 136 copy_items.append(i) 137 self.copy(copy_items) 138 139 @action(name='edit-paste', stock_id='gtk-paste') 140 def paste_action(self): 141 view = self.gui_manager.main_window.get_current_diagram_view() 142 diagram = self.gui_manager.main_window.get_current_diagram() 143 if not view: 144 return 145 146 self.paste(diagram) 147 134 148 view.unselect_all() 135 149 136 150 for item in self._new_items.values(): 137 view.select (view.find_view_item(item))151 view.select_item(item) 138 152 139 register_action(PasteAction, 'EditCopy')140 153 154 # vim:sw=4:et:ai gaphor/trunk/gaphor/services/tests/test_copyservice.py
r1299 r1301 1 1 2 2 import unittest 3 from gaphor import UML 4 from gaphor.diagram import items 3 5 from gaphor.services.copyservice import CopyService 4 6 from gaphor.application import Application … … 7 9 8 10 def setUp(self): 9 Application.init(services=['gui_manager', 'action_manager', 'element_factory' ])11 Application.init(services=['gui_manager', 'action_manager', 'element_factory', 'properties']) 10 12 11 13 def tearDown(self): 12 pass14 Application.shutdown() 13 15 14 def test_copy_buffer(self): 15 pass 16 def test_init(self): 17 service = CopyService() 18 service.init(self) 16 19 20 def test_copy(self): 21 service = CopyService() 22 service.init(self) 23 ef = Application.get_service('element_factory') 24 diagram = ef.create(UML.Diagram) 25 ci = diagram.create(items.CommentItem, subject=ef.create(UML.Comment)) 17 26 27 service.copy([ci]) 28 assert diagram.canvas.get_all_items() == [ ci ] 29 30 service.paste(diagram) 31 32 assert len(diagram.canvas.get_all_items()) == 2, diagram.canvas.get_all_items() 33 18 34 # vim:sw=4:et gaphor/trunk/gaphor/services/undomanager.py
r1276 r1301 282 282 except KeyError: 283 283 pass # Key was probably already removed in an unlink call 284 factory.notify(element, 'remove')285 284 component.handle(ElementDeleteEvent(factory, element)) 286 285 self.add_undo_action(_undo_create_event) … … 293 292 def _undo_delete_event(): 294 293 factory._elements[element.id] = element 295 factory.notify(element, 'create')296 294 component.handle(ElementCreateEvent(factory, element)) 297 295 self.add_undo_action(_undo_delete_event) gaphor/trunk/gaphor/ui/diagramtab.py
r1292 r1301 12 12 from gaphor.ui.diagramview import DiagramView 13 13 from gaphor.ui.diagramtoolbox import DiagramToolbox 14 from event import Diagram ItemFocused14 from event import DiagramSelectionChange 15 15 16 16 class DiagramTab(object): … … 106 106 gtk.FILL) 107 107 108 view.connect('focus-changed', self._on_view_ focus_changed)108 view.connect('focus-changed', self._on_view_selection_changed) 109 109 view.connect('selection-changed', self._on_view_selection_changed) 110 110 view.connect_after('key-press-event', self._on_key_press_event) … … 215 215 216 216 217 def _on_view_focus_changed(self, view, focus_item): 218 component.handle(DiagramItemFocused(focus_item)) 219 220 def _on_view_selection_changed(self, view, selection): 221 self.action_manager.execute('ItemSelect') 217 def _on_view_selection_changed(self, view, selection_or_focus): 218 component.handle(DiagramSelectionChange(view, view.focused_item, view.selected_items)) 222 219 223 220 def _on_diagram_event(self, element, pspec): … … 258 255 view.focused_item = item 259 256 260 self.action_manager.execute('ItemDiagramDrop')261 262 257 else: 263 258 log.warning('No graphical representation for UML element %s' % type(element).__name__) gaphor/trunk/gaphor/ui/event.py
r1170 r1301 2 2 from interfaces import * 3 3 4 class DiagramItemFocused(object): 5 interface.implements(IDiagramElementReceivedFocus) 4 class DiagramSelectionChange(object): 5 6 interface.implements(IDiagramSelectionChange) 6 7 7 def __init__(self, diagramItem): 8 self.diagramItem = diagramItem 8 def __init__(self, diagram_view, focused_item, selected_items): 9 self.diagram_view = diagram_view 10 self.focused_item = focused_item 11 self.selected_items = selected_items 12 13 14 # vim:sw=4:et:ai gaphor/trunk/gaphor/ui/interfaces.py
r1260 r1301 6 6 7 7 8 class IDiagramElementReceivedFocus(interface.Interface): 9 """A diagram item received focus""" 10 diagramItem = interface.Attribute("The diagram item that received focus") 11 12 8 class IDiagramSelectionChange(interface.Interface): 9 """ 10 The selection of a diagram changed. 11 """ 12 diagram_view = interface.Attribute('The diagram View that emits the event') 13 14 focused_item = interface.Attribute('The diagram item that received focus') 15 16 selected_items = interface.Attribute('All selected items in the diagram') 17 18 13 19 class IUIComponent(interface.Interface): 14 """A user interface component""" 20 """ 21 A user interface component 22 """ 15 23 16 24 ui_manager = interface.Attribute("The gtk.UIManager, set after construction") … … 20 28 """ 21 29 22 #title = interface.Attribute("Title for the window")23 #size = interface.Attribute("initial window size (width, height)")24 #menubar_path = interface.Attribute("UIManager path for menu bar")25 #toolbar_path = interface.Attribute("UIManager path for tool bar")26 27 #def ui_component(self):28 # """Create the UI component to be shown in a window."""29 30 30 31 31 class IDetailsPage(IUIComponent): 32 """A property page which can display itself in a notebook""" 32 """ 33 A property page which can display itself in a notebook 34 """ 33 35 34 36 gaphor/trunk/gaphor/ui/mainwindow.py
r1295 r1301 19 19 from gaphor.ui.objectinspector import ObjectInspector 20 20 21 from interfaces import IDiagram ElementReceivedFocus21 from interfaces import IDiagramSelectionChange 22 22 from gaphor.interfaces import IServiceEvent 23 23 … … 241 241 #self.objectInspector.set_size_request(-1, 50) 242 242 243 diagramReceivedFocus = component.adapter(IDiagram ElementReceivedFocus)(243 diagramReceivedFocus = component.adapter(IDiagramSelectionChange)( 244 244 self.objectInspector) 245 245 component.provideHandler(diagramReceivedFocus) gaphor/trunk/gaphor/ui/objectinspector.py
r1170 r1301 174 174 175 175 This reloads all tabs based on the current selection.""" 176 diagramItem = event. diagramItem176 diagramItem = event.focused_item 177 177 self.clearAllTabs() 178 178 if diagramItem is None: gaphor/trunk/gaphor/ui/tests/test_consolewindow.py
r1260 r1301 10 10 window = ConsoleWindow() 11 11 window.ui_manager = ui_manager 12 assert len(window.action_group.list_actions()) == 312 assert len(window.action_group.list_actions()) == 2, window.action_group.list_actions() 13 13 window.construct() 14 14 window.close() gaphor/trunk/gaphor/ui/tests/test_diagramtab.py
r1283 r1301 2 2 import unittest 3 3 4 from gaphor import resource, UML 4 from gaphor import UML 5 from gaphor.application import Application 5 6 from gaphor.ui.diagramtab import DiagramTab 6 7 from gaphor.ui.mainwindow import MainWindow … … 12 13 13 14 def setUp(self): 14 UML.flush() 15 Application.init(services=['element_factory', 'gui_manager', 'action_manager', 'properties']) 16 main_window = Application.get_service('gui_manager').main_window 15 17 self.diagram = UML.create(UML.Diagram) 16 self.tab = DiagramTab( self.main_window)18 self.tab = DiagramTab(main_window) 17 19 self.tab.set_diagram(self.diagram) 18 20 self.assertEquals(self.tab.diagram, self.diagram) 19 self.tab.construct() 21 widget = self.tab.construct() 22 main_window.add_tab(self.tab, widget, 'title') 20 23 self.assertEquals(self.tab.view.canvas, self.diagram.canvas) 21 self.assertEquals(len(UML. select()), 1)24 self.assertEquals(len(UML.lselect()), 1) 22 25 23 26 def tearDown(self): … … 26 29 self.diagram.unlink() 27 30 del self.diagram 28 UML.flush()29 assert len(UML. select()) == 031 Application.shutdown() 32 assert len(UML.lselect()) == 0 30 33 31 34 def test_creation(self): … … 42 45 diagram.canvas.update_now() 43 46 tab.view.request_update([box]) 44 self.assertEquals(len(tab.view._item_bounds), 1) 45 self.assertEquals(tab.view._item_bounds.keys()[0], box) 46 #diagram.canvas.add(Element()) 47 from gaphor.diagram.elementitem import ElementItem 47 assert len(tab.view._item_bounds) == 1, tab.view._item_bounds 48 assert tab.view._item_bounds.keys()[0] is box, tab.view._item_bounds.keys()[0] 49 48 50 from gaphor.diagram.comment import CommentItem 49 51 comment = self.diagram.create(CommentItem, subject=UML.create(UML.Comment)) 50 52 self.assertEquals(len(tab.view._item_bounds), 2) 51 self.assertEquals(len(UML. select()), 2)53 self.assertEquals(len(UML.lselect()), 2) 52 54 gaphor/trunk/gaphor/ui/tests/test_diagramtoolbox.py
r1289 r1301 3 3 import unittest 4 4 5 from gaphor.application import restart,Application5 from gaphor.application import Application 6 6 from gaphor.ui.diagramtab import DiagramTab 7 7 from gaphor.ui.diagramtoolbox import DiagramToolbox … … 11 11 12 12 def setUp(self): 13 restart()14 13 Application.init(services=['element_factory', 'properties']) 15 14 diagram = UML.Diagram() … … 18 17 tab.construct() 19 18 self.tab = tab 19 20 def tearDown(self): 21 Application.shutdown() 20 22 21 23 def test_standalone_construct_with_diagram(self): gaphor/trunk/gaphor/ui/tests/test_mainwindow.py
r1283 r1301 3 3 import unittest 4 4 5 from gaphor.application import restart,Application5 from gaphor.application import Application 6 6 from gaphor.ui.mainwindow import MainWindow 7 7 from gaphor import UML … … 10 10 11 11 def setUp(self): 12 restart()13 12 Application.init(services=['element_factory', 'properties', 'action_manager']) 13 14 def tearDown(self): 15 Application.shutdown() 14 16 15 17 def test_creation(self): gaphor/trunk/gaphor/ui/tests/test_namespace.py
r1121 r1301 1 1 # vim:sw=4:et:ai 2 2 3 import unittest 3 4 import gaphor.UML as UML 4 5 from gaphor.ui.namespace import NamespaceModel 5 6 6 factory = UML.ElementFactory() 7 class NamespaceTestCase(unittest.TestCase): 7 8 8 m = factory.create(UML.Package) 9 m.name = 'm' 10 a = factory.create(UML.Package) 11 a.name = 'a' 12 a.package = m 13 assert a.package is m 14 assert a in m.ownedMember 15 assert a.namespace is m 9 def test_all(self): 10 factory = UML.ElementFactory() 16 11 17 b = factory.create(UML.Package) 18 b.name = 'b' 19 b.package = a 20 assert b in a.ownedMember 21 assert b.namespace is a 12 m = factory.create(UML.Package) 13 m.name = 'm' 14 a = factory.create(UML.Package) 15 a.name = 'a' 16 a.package = m 17 assert a.package is m 18 assert a in m.ownedMember 19 assert a.namespace is m 22 20 23 c = factory.create(UML.Class) 24 c.name = 'c' 25 c.package = b 26 d = factory.create(UML.Class) 27 d.name = 'd' 28 d.package = a 29 e = factory.create(UML.Class) 30 e.name = 'e' 31 e.package = b 21 b = factory.create(UML.Package) 22 b.name = 'b' 23 b.package = a 24 assert b in a.ownedMember 25 assert b.namespace is a 32 26 33 assert c in b.ownedMember 34 assert c.namespace is b 35 assert d in a.ownedMember 36 assert d.namespace is a 37 assert e in b.ownedMember 38 assert e.namespace is b 27 c = factory.create(UML.Class) 28 c.name = 'c' 29 c.package = b 30 d = factory.create(UML.Class) 31 d.name = 'd' 32 d.package = a 33 e = factory.create(UML.Class) 34 e.name = 'e' 35 e.package = b 36 37 assert c in b.ownedMember 38 assert c.namespace is b 39 assert d in a.ownedMember 40 assert d.namespace is a 41 assert e in b.ownedMember 42 assert e.namespace is b 39 43 40 44 41 ns = NamespaceModel(factory)42 # We have a model loaded. Use it!43 factory.notify_model()45 ns = NamespaceModel(factory) 46 # We have a model loaded. Use it! 47 factory.notify_model() 44 48 45 print '---'46 ns.dump()47 assert ns.path_from_element(m) == (0,)48 assert ns.path_from_element(a) == (0, 0)49 assert ns.path_from_element(b) == (0, 0, 1)50 assert ns.path_from_element(c) == (0, 0, 1, 0)51 assert ns.path_from_element(d) == (0, 0, 0)52 assert ns.path_from_element(e) == (0, 0, 1, 1)49 print '---' 50 ns.dump() 51 assert ns.path_from_element(m) == (0,) 52 assert ns.path_from_element(a) == (0, 0) 53 assert ns.path_from_element(b) == (0, 0, 0), ns.path_from_element(b) 54 assert ns.path_from_element(c) == (0, 0, 0, 0) 55 assert ns.path_from_element(d) == (0, 0, 1) 56 assert ns.path_from_element(e) == (0, 0, 0, 1) 53 57 54 print '--- del.b.ownedClassifier[c]'55 del b.ownedClassifier[c]56 ns.dump()57 assert ns.path_from_element(m) == (0,)58 assert ns.path_from_element(a) == (0, 0)59 assert ns.path_from_element(b) == (0, 0, 1)60 assert ns.path_from_element(d) == (0, 0, 0)61 assert ns.path_from_element(e) == (0, 0, 1, 0)62 try:63 ns.path_from_element(c)64 except AttributeError:65 pass # Yes, should raise an exception66 else:67 assert ns.path_from_element(c) is not None58 print '--- del.b.ownedClassifier[c]' 59 del b.ownedClassifier[c] 60 ns.dump() 61 assert ns.path_from_element(m) == (0,) 62 assert ns.path_from_element(a) == (0, 0) 63 assert ns.path_from_element(b) == (0, 0, 0) 64 assert ns.path_from_element(d) == (0, 0, 1) 65 assert ns.path_from_element(e) == (0, 0, 0, 0) 66 try: 67 ns.path_from_element(c) 68 except AttributeError: 69 pass # Yes, should raise an exception 70 else: 71 assert ns.path_from_element(c) is not None 68 72 69 print '--- c.package = a'70 c.package = a71 ns.dump()72 assert ns.path_from_element(m) == (0,)73 assert ns.path_from_element(a) == (0, 0)74 assert ns.path_from_element(b) == (0, 0, 1)75 assert ns.path_from_element(c) == (0, 0, 2)76 assert ns.path_from_element(d) == (0, 0, 0)77 assert ns.path_from_element(e) == (0, 0, 1, 0)73 print '--- c.package = a' 74 c.package = a 75 ns.dump() 76 assert ns.path_from_element(m) == (0,) 77 assert ns.path_from_element(a) == (0, 0) 78 assert ns.path_from_element(b) == (0, 0, 0) 79 assert ns.path_from_element(c) == (0, 0, 1) 80 assert ns.path_from_element(d) == (0, 0, 2) 81 assert ns.path_from_element(e) == (0, 0, 0, 0) 78 82 79 print '--- b.package = m'80 b.package = m81 ns.dump()82 assert ns.path_from_element(m) == (0,)83 assert ns.path_from_element(a) == (0, 0)84 assert ns.path_from_element(b) == (0, 1)85 assert ns.path_from_element(c) == (0, 0, 1)86 assert ns.path_from_element(d) == (0, 0, 0)87 assert ns.path_from_element(e) == (0, 1, 0)83 print '--- b.package = m' 84 b.package = m 85 ns.dump() 86 assert ns.path_from_element(m) == (0,) 87 assert ns.path_from_element(a) == (0, 0) 88 assert ns.path_from_element(b) == (0, 1) 89 assert ns.path_from_element(c) == (0, 0, 0) 90 assert ns.path_from_element(d) == (0, 0, 1) 91 assert ns.path_from_element(e) == (0, 1, 0) 88 92 89 print '--- e.unlink()'90 e.unlink()91 ns.dump()93 print '--- e.unlink()' 94 e.unlink() 95 ns.dump() 92 96 93 print '--- a.unlink()' 94 def on_unlink(name, element): 95 print 'unlink: %s' % element.name 96 a.connect('__unlink__', on_unlink, a) 97 b.connect('__unlink__', on_unlink, b) 98 c.connect('__unlink__', on_unlink, c) 99 d.connect('__unlink__', on_unlink, d) 97 print '--- a.unlink()' 98 # def on_unlink(name, element): 99 # print 'unlink: %s' % element.name 100 # a.connect('__unlink__', on_unlink, a) 101 # b.connect('__unlink__', on_unlink, b) 102 # c.connect('__unlink__', on_unlink, c) 103 # d.connect('__unlink__', on_unlink, d) 104 # 105 a.unlink() 106 ns.dump() 107 print '--- TODO: e.relink()' 100 108 101 a.unlink() 102 ns.dump() 103 print '--- TODO: e.relink()' 109 print UML.Class.package 110 print UML.Package.ownedClassifier 104 111 105 print UML.Class.package106 print UML.Package.ownedClassifiergaphor/trunk/gaphor/ui/toolbox.py
r1290 r1301 53 53 arrow = button.get_children()[0].get_children()[0] 54 54 if not content.get_property('visible'): 55 log.debug('switched to visible: %s' % button.toggle_id)56 55 content.show() 57 56 arrow.set(gtk.ARROW_DOWN, gtk.SHADOW_IN) 58 57 self.emit('toggled', button.toggle_id, True) 59 58 else: 60 log.debug('switched to hidden: %s' % button.toggle_id)61 59 content.hide() 62 60 arrow.set(gtk.ARROW_RIGHT, gtk.SHADOW_IN) gaphor/trunk/setup.py
r1297 r1301 121 121 'properties = gaphor.services.properties:Properties', 122 122 'undo_manager = gaphor.services.undomanager:UndoManager', 123 # 'plugin_manager = gaphor.services.pluginmanager:PluginManager',124 123 'element_factory = gaphor.UML.elementfactory:ElementFactory', 125 124 'file_manager = gaphor.services.filemanager:FileManager', … … 127 126 'action_manager = gaphor.services.actionmanager:ActionManager', 128 127 'help = gaphor.services.helpservice:HelpService', 128 'copy = gaphor.services.copyservice:CopyService', 129 129 ], 130 130 'gaphor.uicomponents': [
