Changeset 2230

Show
Ignore:
Timestamp:
02/29/08 07:01:00 (3 months ago)
Author:
arj..@yirdis.nl
Message:

added new event to notify creation of new diagram item.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gaphor/trunk/gaphor/UML/diagram.py

    r1682 r2230  
    99__date__ = '$date$' 
    1010 
     11from zope import component 
    1112import gobject 
    1213import gaphas 
    1314from gaphor.misc import uniqueid 
    1415from uml2 import Namespace, PackageableElement 
     16from event import DiagramItemCreateEvent 
    1517 
    1618class DiagramCanvas(gaphas.Canvas): 
     
    8587            obj.subject = subject 
    8688        self.canvas.add(obj, parent) 
     89        print 'send event', obj 
     90        component.handle(DiagramItemCreateEvent(obj)) 
    8791        return obj 
    8892 
  • gaphor/trunk/gaphor/UML/event.py

    r1992 r2230  
    109109 
    110110 
     111class DiagramItemCreateEvent(object): 
     112    interface.implements(IElementCreateEvent) 
     113 
     114    def __init__(self, element): 
     115        self.element = element 
     116 
     117 
    111118class ElementCreateEvent(object): 
    112119    interface.implements(IElementCreateEvent, IElementFactoryEvent) 
  • gaphor/trunk/gaphor/services/undomanager.py

    r2217 r2230  
    2424 
    2525from gaphor.UML.event import ElementCreateEvent, ElementDeleteEvent, \ 
    26                              FlushFactoryEvent, ModelFactoryEvent, \ 
    27                              AttributeChangeEvent, AssociationSetEvent, \ 
     26                             ModelFactoryEvent, AssociationSetEvent, \ 
    2827                             AssociationAddEvent, AssociationDeleteEvent 
    29 from gaphor.UML.interfaces import IElementCreateEvent, IElementDeleteEvent, \ 
    30                                   IAttributeChangeEvent, IModelFactoryEvent, \ 
    31                                   IAssociationChangeEvent 
     28from gaphor.UML.interfaces import IElementDeleteEvent, \ 
     29                                  IAttributeChangeEvent, IModelFactoryEvent 
     30                                   
    3231 
    3332from gaphor.action import action, build_action_group 
     
    317316 
    318317 
    319     @component.adapter(IElementCreateEvent) 
     318    @component.adapter(ElementCreateEvent) 
    320319    def undo_create_event(self, event): 
    321320        factory = event.service 
  • gaphor/trunk/gaphor/ui/diagramtoolbox.py

    r2181 r2230  
    129129        return factory_method 
    130130 
    131     def _after_handler(self): 
     131    def _after_handler(self, new_item): 
    132132        if self.properties('reset-tool-after-create', False): 
    133133            self.action_group.get_action('toolbox-pointer').activate() 
    134134            # TODO: if the item is a NamedItem, start the EditTool. 
     135        if isinstance(new_item, items.DiagramItem) and \ 
     136                isinstance(new_item.subject, UML.NamedElement): 
     137            print 'start edit tool from after tool handler' 
    135138 
    136139 
  • gaphor/trunk/gaphor/ui/diagramtools.py

    r2106 r2230  
    320320        try: 
    321321            if self.after_handler: 
    322                 self.after_handler(
     322                self.after_handler(self.new_item
    323323            return _PlacementTool.on_button_release(self, context, event) 
    324324        finally: 
  • gaphor/trunk/gaphor/ui/namespace.py

    r2218 r2230  
    1414from gaphor.application import Application 
    1515from gaphor import UML 
    16 from gaphor.UML.event import ModelFactoryEvent, FlushFactoryEvent 
    17 from gaphor.UML.interfaces import IAttributeChangeEvent, IElementCreateEvent, IElementDeleteEvent 
     16from gaphor.UML.event import ElementCreateEvent, ModelFactoryEvent, FlushFactoryEvent 
     17from gaphor.UML.interfaces import IAttributeChangeEvent, IElementDeleteEvent 
    1818from gaphor.UML.event import DerivedUnionSetEvent 
    1919from gaphor.transaction import Transaction 
     
    210210 
    211211 
    212     @component.adapter(IElementCreateEvent) 
     212    @component.adapter(ElementCreateEvent) 
    213213    @catchall 
    214214    def _on_element_create(self, event): 
  • gaphor/trunk/gaphor/ui/propertyeditor.py

    r2203 r2230  
    88from gaphor.core import _ 
    99from gaphor.application import Application 
    10 from gaphor.UML.interfaces import IAssociationChangeEvent 
     10from gaphor.UML.interfaces import IElementCreateEvent, IAssociationChangeEvent 
    1111from gaphor.UML import Presentation 
    1212from interfaces import IPropertyPage, IDiagramSelectionChange 
     
    2121        super(PropertyEditor, self).__init__() 
    2222        self._current_item = None 
    23         self._last_tab = _('Properties') 
     23        self._default_tab = _('Properties') 
     24        self._last_tab = self._default_tab 
     25        self._new_item = False 
    2426     
    2527    def construct(self): 
     
    3335        Application.register_handler(self._selection_change) 
    3436        Application.register_handler(self._element_changed) 
     37        Application.register_handler(self._new_item_on_diagram) 
    3538         
    3639        return self.notebook 
     
    4851        self.notebook.show_all() 
    4952 
    50         self._last_tab = last_tab 
     53        self._last_tab = self._new_item and self._default_tab or last_tab 
    5154 
    5255        # Show the last selected tab again. 
     
    5760                self.notebook.set_current_page(page_num) 
    5861                break 
    59  
     62         
     63        if self._new_item: 
     64            #self.notebook.grab_focus() 
     65            self._new_item = False 
    6066             
    6167         
     
    100106                self.create_tabs_for_item(self._current_item) 
    101107 
     108    @component.adapter(Presentation, IElementCreateEvent) 
     109    def _new_item_on_diagram(self, item, event): 
     110        self._new_item = True 
     111        self.notebook.set_current_page(0) 
     112 
    102113 
    103114# vim:sw=4:et:ai