Changeset 2233

Show
Ignore:
Timestamp:
03/02/08 02:39:10 (2 months ago)
Author:
arj..@yirdis.nl
Message:

Name is automatically selected when a new item is placed on the canvas. Fixes #26.

Files:

Legend:

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

    r2230 r2233  
    8888        self.canvas.add(obj, parent) 
    8989        print 'send event', obj 
    90         component.handle(DiagramItemCreateEvent(obj)) 
    9190        return obj 
    9291 
  • gaphor/trunk/gaphor/adapters/propertypages.py

    r2202 r2233  
    505505        text_view.show() 
    506506        page.pack_start(text_view) 
     507        page.set_data('default', text_view) 
    507508 
    508509        changed_id = buffer.connect('changed', self._on_body_change) 
     
    551552        entry.set_text(subject and subject.name or '') 
    552553        hbox.pack_start(entry) 
     554        page.set_data('default', entry) 
    553555 
    554556        # monitor subject.name attribute 
  • gaphor/trunk/gaphor/ui/diagramtoolbox.py

    r2232 r2233  
    77""" 
    88 
     9from zope import component 
     10from gaphor.UML.event import DiagramItemCreateEvent 
    911from gaphor import UML 
    1012from gaphor.diagram import items 
     
    134136        if self.properties('reset-tool-after-create', False): 
    135137            self.action_group.get_action('toolbox-pointer').activate() 
    136             # TODO: if the item is a NamedItem, start the EditTool. 
    137         if isinstance(new_item, items.DiagramItem) and \ 
    138                 isinstance(new_item.subject, UML.NamedElement): 
    139             print 'start edit tool from after tool handler' 
     138        component.handle(DiagramItemCreateEvent(new_item)) 
    140139 
    141140 
  • gaphor/trunk/gaphor/ui/propertyeditor.py

    r2230 r2233  
    2323        self._default_tab = _('Properties') 
    2424        self._last_tab = self._default_tab 
    25         self._new_item = False 
    2625     
    2726    def construct(self): 
     
    4645        for name, adapter in component.getAdapters([item,], IPropertyPage): 
    4746            try: 
    48                 self.notebook.prepend_page(adapter.construct(), gtk.Label(name)) 
     47                page = adapter.construct() 
     48                self.notebook.prepend_page(page, gtk.Label(name)) 
    4949            except Exception, e: 
    5050                log.error('Could not construct property page for ' + name, e) 
    5151        self.notebook.show_all() 
    5252 
    53         self._last_tab = self._new_item and self._default_tab or last_tab 
    54  
     53        self.select_tab(last_tab) 
     54         
     55             
     56    def select_tab(self, name): 
    5557        # Show the last selected tab again. 
    5658        for page_num in range(0, self.notebook.get_n_pages()): 
    5759            page = self.notebook.get_nth_page(page_num) 
    5860            label_text = self.notebook.get_tab_label_text(page) 
    59             if label_text == self._last_tab
     61            if label_text == name
    6062                self.notebook.set_current_page(page_num) 
     63                self._last_tab = name 
    6164                break 
    6265         
    63         if self._new_item: 
    64             #self.notebook.grab_focus() 
    65             self._new_item = False 
    66              
    67          
     66 
    6867    def clear_all_tabs(self): 
    6968        """ 
     
    108107    @component.adapter(Presentation, IElementCreateEvent) 
    109108    def _new_item_on_diagram(self, item, event): 
    110         self._new_item = True 
    111         self.notebook.set_current_page(0) 
    112  
     109        if self.notebook.get_n_pages() > 0: 
     110            self.select_tab(self._default_tab) 
     111            page = self.notebook.get_nth_page(self.notebook.get_current_page()) 
     112            default = page.get_data('default') 
     113            if default: 
     114                default.grab_focus() 
     115         
    113116 
    114117# vim:sw=4:et:ai