/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/UI/tableview.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/UI/tableview.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1662 by bh, Wed Aug 27 13:51:01 2003 UTC revision 2032 by bh, Mon Dec 22 14:54:47 2003 UTC
# Line 193  class TableGrid(wxGrid, Publisher): Line 193  class TableGrid(wxGrid, Publisher):
193          self.RegisterDataType(wxGRID_VALUE_FLOAT,          self.RegisterDataType(wxGRID_VALUE_FLOAT,
194                                NullRenderer(wxGridCellFloatRenderer()), None)                                NullRenderer(wxGridCellFloatRenderer()), None)
195    
196            EVT_WINDOW_DESTROY(self, self.OnDestroy)
197    
198        def OnDestroy(self, event):
199            Publisher.Destroy(self)
200    
201      def SetTableObject(self, table):      def SetTableObject(self, table):
202          self.table.SetTable(table)          self.table.SetTable(table)
203    
# Line 310  class TableFrame(ThubanFrame): Line 315  class TableFrame(ThubanFrame):
315          self.session = self.app.Session()          self.session = self.app.Session()
316          self.session.Subscribe(TABLE_REMOVED, self.close_on_table_removed)          self.session.Subscribe(TABLE_REMOVED, self.close_on_table_removed)
317    
318        def OnDestroy(self, event):
319            """Extend inherited method to unsubscribe messages"""
320            self.app.Unsubscribe(SESSION_REPLACED, self.close_on_session_replaced)
321            self.session.Unsubscribe(TABLE_REMOVED, self.close_on_table_removed)
322            ThubanFrame.OnDestroy(self, event)
323    
324      def make_grid(self, table):      def make_grid(self, table):
325          """Return the table grid to use in the frame.          """Return the table grid to use in the frame.
# Line 319  class TableFrame(ThubanFrame): Line 329  class TableFrame(ThubanFrame):
329          """          """
330          return TableGrid(self, table)          return TableGrid(self, table)
331    
     def OnClose(self, event):  
         self.app.Unsubscribe(SESSION_REPLACED, self.close_on_session_replaced)  
         self.session.Unsubscribe(TABLE_REMOVED, self.close_on_table_removed)  
         ThubanFrame.OnClose(self, event)  
   
332      def close_on_session_replaced(self, *args):      def close_on_session_replaced(self, *args):
333          """Subscriber for the SESSION_REPLACED messages.          """Subscriber for the SESSION_REPLACED messages.
334    
# Line 584  class LayerTableFrame(QueryTableFrame): Line 589  class LayerTableFrame(QueryTableFrame):
589          for i in sel:          for i in sel:
590              self.grid.SelectRowById(i, True)              self.grid.SelectRowById(i, True)
591    
592        def OnDestroy(self, event):
593            """Extend inherited method to unsubscribe messages"""
594            # There's no need to unsubscribe from self.grid's messages
595            # because it will get a DESTROY event too (since destroying the
596            # frame basically means that all child windows are also
597            # destroyed) and this it will clear all subscriptions
598            # automatically.  It may even have been destroyed already (this
599            # does happen on w2000 for instance) so calling any of its
600            # methods here would be an error.
601            self.parent.Unsubscribe(SHAPES_SELECTED, self.select_shapes)
602            self.map.Unsubscribe(MAP_LAYERS_REMOVED, self.map_layers_removed)
603            QueryTableFrame.OnDestroy(self, event)
604    
605      def make_grid(self, table):      def make_grid(self, table):
606          """Override the derived method to return a LayerTableGrid.          """Override the derived method to return a LayerTableGrid.
607          """          """
# Line 595  class LayerTableFrame(QueryTableFrame): Line 613  class LayerTableFrame(QueryTableFrame):
613          """          """
614          return dict([(i, 0) for i in self.parent.SelectedShapes()])          return dict([(i, 0) for i in self.parent.SelectedShapes()])
615    
     def OnClose(self, event):  
         """Override the derived method to first unsubscribed."""  
         self.parent.Unsubscribe(SHAPES_SELECTED, self.select_shapes)  
         self.grid.Unsubscribe(ROW_SELECTED, self.rows_selected)  
         self.map.Unsubscribe(MAP_LAYERS_REMOVED, self.map_layers_removed)  
         QueryTableFrame.OnClose(self, event)  
   
616      def select_shapes(self, layer, shapes):      def select_shapes(self, layer, shapes):
617          """Subscribed to the SHAPES_SELECTED message.          """Subscribed to the SHAPES_SELECTED message.
618    

Legend:
Removed from v.1662  
changed lines
  Added in v.2032

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26