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

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

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

revision 951 by frank, Wed May 21 14:20:32 2003 UTC revision 1014 by jan, Fri May 23 09:26:23 2003 UTC
# Line 21  import os Line 21  import os
21  from wxPython.wx import *  from wxPython.wx import *
22  from wxPython.wx import __version__ as wxPython_version  from wxPython.wx import __version__ as wxPython_version
23    
24    from wxPython.lib.dialogs import wxMultipleChoiceDialog
25    
26  import Thuban  import Thuban
27  import Thuban.version  import Thuban.version
28    
# Line 404  class MainWindow(DockFrame): Line 406  class MainWindow(DockFrame):
406              # wx's destroy event, but that isn't implemented for wxGTK              # wx's destroy event, but that isn't implemented for wxGTK
407              # yet.              # yet.
408              self.canvas.Unsubscribe(VIEW_POSITION, self.view_position_changed)              self.canvas.Unsubscribe(VIEW_POSITION, self.view_position_changed)
409              DockFrame._OnClose(self, event)              DockFrame.OnClose(self, event)
410              self.Destroy()              self.Destroy()
411    
412      def SetMap(self, map):      def SetMap(self, map):
# Line 459  class MainWindow(DockFrame): Line 461  class MainWindow(DockFrame):
461          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
462              filename = dlg.GetPath()              filename = dlg.GetPath()
463              title = os.path.splitext(os.path.basename(filename))[0]              title = os.path.splitext(os.path.basename(filename))[0]
             store = self.application.Session().OpenShapefile(filename)  
             layer = Layer(title, store)  
464              map = self.canvas.Map()              map = self.canvas.Map()
465              has_layers = map.HasLayers()              has_layers = map.HasLayers()
466              try:              try:
467                  map.AddLayer(layer)                  store = self.application.Session().OpenShapefile(filename)
468              except IOError:              except IOError:
469                  # the layer couldn't be opened                  # the layer couldn't be opened
470                  self.RunMessageBox(_("Add Layer"),                  self.RunMessageBox(_("Add Layer"),
471                                     _("Can't open the file '%s'.") % filename)                                     _("Can't open the file '%s'.") % filename)
472              else:              else:
473                    layer = Layer(title, store)
474                    map.AddLayer(layer)
475                  if not has_layers:                  if not has_layers:
476                      # if we're adding a layer to an empty map, fit the                      # if we're adding a layer to an empty map, fit the
477                      # new map to the window                      # new map to the window
# Line 482  class MainWindow(DockFrame): Line 484  class MainWindow(DockFrame):
484          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
485              filename = dlg.GetPath()              filename = dlg.GetPath()
486              title = os.path.splitext(os.path.basename(filename))[0]              title = os.path.splitext(os.path.basename(filename))[0]
             layer = RasterLayer(title, filename)  
487              map = self.canvas.Map()              map = self.canvas.Map()
488              has_layers = map.HasLayers()              has_layers = map.HasLayers()
489              try:              try:
490                  map.AddLayer(layer)                  layer = RasterLayer(title, filename)
491              except IOError:              except IOError:
492                  # the layer couldn't be opened                  # the layer couldn't be opened
493                  self.RunMessageBox(_("Add Image Layer"),                  self.RunMessageBox(_("Add Image Layer"),
494                                     _("Can't open the file '%s'.") % filename)                                     _("Can't open the file '%s'.") % filename)
495              else:              else:
496                    map.AddLayer(layer)
497                  if not has_layers:                  if not has_layers:
498                      # if we're adding a layer to an empty map, fit the                      # if we're adding a layer to an empty map, fit the
499                      # new map to the window                      # new map to the window
# Line 646  class MainWindow(DockFrame): Line 648  class MainWindow(DockFrame):
648          return dialog is not None and dialog.IsShown()          return dialog is not None and dialog.IsShown()
649    
650      def TableOpen(self):      def TableOpen(self):
651          print "TableOpen"          print "TableOpen: not implemented"
652          dlg = wxFileDialog(self, _("Open Table"), ".", "",          dlg = wxFileDialog(self, _("Open Table"), ".", "",
653                             "DBF Files (*.dbf)|*.dbf|" +                             "DBF Files (*.dbf)|*.dbf|" +
654                             "CSV Files (*.csv)|*.csv|" +                             "CSV Files (*.csv)|*.csv|" +
# Line 659  class MainWindow(DockFrame): Line 661  class MainWindow(DockFrame):
661          dlg.Destroy()          dlg.Destroy()
662    
663      def TableClose(self):      def TableClose(self):
664          print "TableClose"          print "TableClose: not implemented"
665    
666      def TableShow(self):      def TableShow(self):
667          print "TableShow"          """Offer a multi-selection dialog for tables to be displayed
668            
669            The windows for the selected tables are opened or brought to
670            the front.
671            """
672            tables = self.application.session.Tables()
673            table_list = []
674            for table in tables:
675                table_list.append(table.Title())
676    
677            dlg = wxMultipleChoiceDialog(self, _("Pick the table to show:"),
678                                         _("Show Table"), table_list)
679            if (dlg.ShowModal() == wxID_OK):
680                for i in dlg.GetValue():
681                    # XXX: First check whether the dialog is already open
682                    # and if so, bring it to the front.
683                    dialog = tableview.QueryTableFrame(self, table_list[i],
684                                                  _("Table: %s") % table_list[i],
685                                                  tables[i])
686                    self.add_dialog(table_list[i], dialog)
687                    dialog.Show(true)
688    
689            # XXX: just some analyis code, remove it when the above XXX is
690            # resolved.
691            for d in self.dialogs.values():
692                if isinstance(d, tableview.LayerTableFrame):
693                    print "LayerTable:", d.GetTitle()
694                elif isinstance(d, tableview.QueryTableFrame):
695                    print "QueryTable:", d.GetTitle()
696                else:
697                    print "Other:", d.GetTitle()
698    
699      def TableHide(self):      def TableHide(self):
700          print "TableHide"          print "TableHide: not implemented"
701    
702      def TableJoin(self):      def TableJoin(self):
         print "TableJoin"  
703          dlg = JoinDialog(self, _("Join Tables"), self.application.session)          dlg = JoinDialog(self, _("Join Tables"), self.application.session)
704          if dlg.ShowModal() == wxID_OK:          dlg.ShowModal()
             print "OK"  
705    
706      def ZoomInTool(self):      def ZoomInTool(self):
707          self.canvas.ZoomInTool()          self.canvas.ZoomInTool()

Legend:
Removed from v.951  
changed lines
  Added in v.1014

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26