/[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 1032 by jan, Mon May 26 15:33:20 2003 UTC revision 1068 by bh, Tue May 27 15:02:37 2003 UTC
# Line 18  from Thuban.Lib.connector import Publish Line 18  from Thuban.Lib.connector import Publish
18  from Thuban.Model.table import FIELDTYPE_INT, FIELDTYPE_DOUBLE, \  from Thuban.Model.table import FIELDTYPE_INT, FIELDTYPE_DOUBLE, \
19       FIELDTYPE_STRING, table_to_dbf, table_to_csv       FIELDTYPE_STRING, table_to_dbf, table_to_csv
20  import view  import view
21  from dialogs import NonModalDialog  from dialogs import NonModalNonParentDialog
22  from messages import SHAPES_SELECTED  
23    from messages import SHAPES_SELECTED, SESSION_REPLACED
24    from Thuban.Model.messages import TABLE_REMOVED
25    
26  wx_value_type_map = {FIELDTYPE_INT: wxGRID_VALUE_NUMBER,  wx_value_type_map = {FIELDTYPE_INT: wxGRID_VALUE_NUMBER,
27                       FIELDTYPE_DOUBLE: wxGRID_VALUE_FLOAT,                       FIELDTYPE_DOUBLE: wxGRID_VALUE_FLOAT,
# Line 123  class TableGrid(wxGrid, Publisher): Line 125  class TableGrid(wxGrid, Publisher):
125          # of the table and will destroy it when done. Otherwise you          # of the table and will destroy it when done. Otherwise you
126          # would need to keep a reference to it and call its Destroy          # would need to keep a reference to it and call its Destroy
127          # method later.          # method later.
128          self.SetTable(self.table, true)          self.SetTable(self.table, True)
129    
130          #self.SetMargins(0,0)          #self.SetMargins(0,0)
131    
# Line 131  class TableGrid(wxGrid, Publisher): Line 133  class TableGrid(wxGrid, Publisher):
133          # column widths automatically but it would cause a traversal of          # column widths automatically but it would cause a traversal of
134          # the entire table which for large .dbf files can take a very          # the entire table which for large .dbf files can take a very
135          # long time.          # long time.
136          #self.AutoSizeColumns(false)          #self.AutoSizeColumns(False)
137    
138          self.SetSelectionMode(wxGrid.wxGridSelectRows)          self.SetSelectionMode(wxGrid.wxGridSelectRows)
139    
# Line 236  class LayerTableGrid(TableGrid): Line 238  class LayerTableGrid(TableGrid):
238                  self.allow_messages()                  self.allow_messages()
239    
240    
241  class TableFrame(NonModalDialog):  class TableFrame(NonModalNonParentDialog):
242    
243      """Frame that displays a Thuban table in a grid view"""      """Frame that displays a Thuban table in a grid view"""
244    
245      def __init__(self, parent, name, title, table):      def __init__(self, parent, name, title, table):
246          NonModalDialog.__init__(self, parent, name, title)          NonModalNonParentDialog.__init__(self, parent, name, title)
247          self.table = table          self.table = table
248          self.grid = self.make_grid(self.table)          self.grid = self.make_grid(self.table)
249            self.app = self.parent.application
250            self.app.Subscribe(SESSION_REPLACED, self.close_on_session_replaced)
251            self.session = self.app.Session()
252            self.session.Subscribe(TABLE_REMOVED, self.close_on_table_removed)
253    
254      def make_grid(self, table):      def make_grid(self, table):
255          """Return the table grid to use in the frame.          """Return the table grid to use in the frame.
# Line 253  class TableFrame(NonModalDialog): Line 259  class TableFrame(NonModalDialog):
259          """          """
260          return TableGrid(self, table)          return TableGrid(self, table)
261    
262        def OnClose(self, event):
263            self.app.Unsubscribe(SESSION_REPLACED, self.close_on_session_replaced)
264            self.session.Unsubscribe(TABLE_REMOVED, self.close_on_table_removed)
265            NonModalNonParentDialog.OnClose(self, event)
266    
267        def close_on_session_replaced(self, *args):
268            """Subscriber for the SESSION_REPLACED messages.
269    
270            The table frame is tied to a session so close the window when
271            the session changes.
272            """
273            self.Close()
274    
275        def close_on_table_removed(self, table):
276            """Subscriber for the TABLE_REMOVED messages.
277    
278            The table frame is tied to a particular table so close the
279            window when the table is removed.
280            """
281            if table is self.table:
282                self.Close()
283    
284    
285  ID_QUERY = 4001  ID_QUERY = 4001
286  ID_EXPORT = 4002  ID_EXPORT = 4002
# Line 295  class QueryTableFrame(TableFrame): Line 323  class QueryTableFrame(TableFrame):
323    
324          topBox = wxBoxSizer(wxVERTICAL)          topBox = wxBoxSizer(wxVERTICAL)
325    
326          sizer = wxStaticBoxSizer(wxStaticBox(self, -1, _("Selection")),          sizer = wxStaticBoxSizer(wxStaticBox(self, -1,
327                                      _("Selection")),
328                                    wxHORIZONTAL)                                    wxHORIZONTAL)
329          sizer.Add(self.combo_fields, 1, wxEXPAND|wxALL, 4)          sizer.Add(self.combo_fields, 1, wxEXPAND|wxALL, 4)
330          sizer.Add(self.choice_comp, 0, wxALL, 4)          sizer.Add(self.choice_comp, 0, wxALL, 4)

Legend:
Removed from v.1032  
changed lines
  Added in v.1068

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26