/[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 963 by jonathan, Wed May 21 17:23:53 2003 UTC revision 1054 by bh, Tue May 27 10:38:16 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 559  class MainWindow(DockFrame): Line 561  class MainWindow(DockFrame):
561              dialog = self.get_open_dialog(name)              dialog = self.get_open_dialog(name)
562              if dialog is None:              if dialog is None:
563                  dialog = tableview.LayerTableFrame(self, name,                  dialog = tableview.LayerTableFrame(self, name,
564                                                 _("Table: %s") % layer.Title(),                                           _("Layer Table: %s") % layer.Title(),
565                                                     layer, table)                                           layer, table)
566                  self.add_dialog(name, dialog)                  self.add_dialog(name, dialog)
567                  dialog.Show(true)                  dialog.Show(True)
568              else:              else:
569                  # FIXME: bring dialog to front here                  # FIXME: bring dialog to front here
570                  pass                  pass
# Line 617  class MainWindow(DockFrame): Line 619  class MainWindow(DockFrame):
619          dialog.Raise()          dialog.Raise()
620    
621      def LayerJoinTable(self):      def LayerJoinTable(self):
622          print "LayerJoinTable"          print "LayerJoinTable: Not implemented."
623    
624      def LayerUnjoinTable(self):      def LayerUnjoinTable(self):
625          print "LayerUnjoinTable"          print "LayerUnjoinTable: Not implemented."
626    
627      def ShowLegend(self):      def ShowLegend(self):
628          if not self.LegendShown():          if not self.LegendShown():
# 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):
         print "TableOpen"  
651          dlg = wxFileDialog(self, _("Open Table"), ".", "",          dlg = wxFileDialog(self, _("Open Table"), ".", "",
652                             "DBF Files (*.dbf)|*.dbf|" +                             _("DBF Files (*.dbf)") + "|*.dbf|" +
653                             "CSV Files (*.csv)|*.csv|" +                             #_("CSV Files (*.csv)") + "|*.csv|" +
654                             "All Files (*.*)|*.*",                             _("All Files (*.*)") + "|*.*",
655                             wxOPEN)                             wxOPEN)
656          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
657              #self.application.session.OpenTable(dlg.GetPath())              filename = dlg.GetPath()
658              pass              dlg.Destroy()
659                try:
660          dlg.Destroy()                  table = self.application.session.OpenTableFile(filename)
661                except IOError:
662                    # the layer couldn't be opened
663                    self.RunMessageBox(_("Open Table"),
664                                       _("Can't open the file '%s'.") % filename)
665                else:
666                    self.ShowTableView(table)
667    
668      def TableClose(self):      def TableClose(self):
669          print "TableClose"          print "TableClose: not implemented"
670    
671      def TableShow(self):      def TableShow(self):
672          print "TableShow"          """Offer a multi-selection dialog for tables to be displayed
673    
674            The windows for the selected tables are opened or brought to
675            the front.
676            """
677            tables = self.application.session.Tables()
678    
679      def TableHide(self):          dlg = wxMultipleChoiceDialog(self, _("Pick the table to show:"),
680          print "TableHide"                                       _("Show Table"),
681                                         [t.Title() for t in tables],
682                                         size = (400,300), style = wxRESIZE_BORDER)
683            if (dlg.ShowModal() == wxID_OK):
684                for i in dlg.GetValue():
685                    # XXX: if the table belongs to a layer, open a
686                    # LayerTableFrame instead of QueryTableFrame
687                    self.ShowTableView(tables[i])
688    
689      def TableJoin(self):      def TableJoin(self):
         print "TableJoin"  
690          dlg = JoinDialog(self, _("Join Tables"), self.application.session)          dlg = JoinDialog(self, _("Join Tables"), self.application.session)
691          if dlg.ShowModal() == wxID_OK:          dlg.ShowModal()
692              print "OK"  
693        def ShowTableView(self, table):
694            """Open a table view for the table and optionally"""
695            name = "table_view%d" % id(table)
696            dialog = self.get_open_dialog(name)
697            if dialog is None:
698                dialog = tableview.QueryTableFrame(self, name,
699                                                   _("Table: %s") % table.Title(),
700                                                   table)
701                self.add_dialog(name, dialog)
702                dialog.Show(True)
703            # FIXME: else bring dialog to front
704    
705      def ZoomInTool(self):      def ZoomInTool(self):
706          self.canvas.ZoomInTool()          self.canvas.ZoomInTool()
# Line 895  _method_command("layer_unjointable", _(" Line 924  _method_command("layer_unjointable", _("
924  _method_command("table_open", _("&Open..."), "TableOpen")  _method_command("table_open", _("&Open..."), "TableOpen")
925  _method_command("table_close", _("&Close"), "TableClose")  _method_command("table_close", _("&Close"), "TableClose")
926  _method_command("table_show", _("&Show"), "TableShow")  _method_command("table_show", _("&Show"), "TableShow")
 _method_command("table_hide", _("&Hide"), "TableHide")  
927  _method_command("table_join", _("&Join..."), "TableJoin")  _method_command("table_join", _("&Join..."), "TableJoin")
928    
929  #  Export only under Windows ...  #  Export only under Windows ...
# Line 940  main_menu = Menu("<main>", "<main>", Line 968  main_menu = Menu("<main>", "<main>",
968                    Menu("table", _("&Table"),                    Menu("table", _("&Table"),
969                         ["table_open", "table_close",                         ["table_open", "table_close",
970                         None,                         None,
971                         "table_show", "table_hide",                         "table_show",
972                         None,                         None,
973                         "table_join"]),                         "table_join"]),
974                    Menu("help", _("&Help"),                    Menu("help", _("&Help"),

Legend:
Removed from v.963  
changed lines
  Added in v.1054

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26