/[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 1031 by jan, Mon May 26 15:33:02 2003 UTC revision 1054 by bh, Tue May 27 10:38:16 2003 UTC
# Line 564  class MainWindow(DockFrame): Line 564  class MainWindow(DockFrame):
564                                           _("Layer 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 648  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: not implemented"  
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: not implemented"          print "TableClose: not implemented"
670    
671      def TableShow(self):      def TableShow(self):
672          """Offer a multi-selection dialog for tables to be displayed          """Offer a multi-selection dialog for tables to be displayed
673            
674          The windows for the selected tables are opened or brought to          The windows for the selected tables are opened or brought to
675          the front.          the front.
676          """          """
677          tables = self.application.session.Tables()          tables = self.application.session.Tables()
         table_list = []  
         for table in tables:  
             table_list.append(table.Title())  
678    
679          dlg = wxMultipleChoiceDialog(self, _("Pick the table to show:"),          dlg = wxMultipleChoiceDialog(self, _("Pick the table to show:"),
680                                       _("Show Table"), table_list,                                       _("Show Table"),
681                                         [t.Title() for t in tables],
682                                       size = (400,300), style = wxRESIZE_BORDER)                                       size = (400,300), style = wxRESIZE_BORDER)
683          if (dlg.ShowModal() == wxID_OK):          if (dlg.ShowModal() == wxID_OK):
684              for i in dlg.GetValue():              for i in dlg.GetValue():
                 # XXX: First check whether the dialog is already open  
                 # and if so, bring it to the front.  
685                  # XXX: if the table belongs to a layer, open a                  # XXX: if the table belongs to a layer, open a
686                  # LayerTableFrame instead of QueryTableFrame                  # LayerTableFrame instead of QueryTableFrame
687                  print "tables[i]:", tables[i]                  self.ShowTableView(tables[i])
                 dialog = tableview.QueryTableFrame(self, table_list[i],  
                                               _("Table: %s") % table_list[i],  
                                               tables[i])  
                 self.add_dialog(table_list[i], dialog)  
                 dialog.Show(true)  
   
         # XXX: just some analyis code, remove it when the above XXX is  
         # resolved.  
         for d in self.dialogs.values():  
             if isinstance(d, tableview.LayerTableFrame):  
                 print "LayerTable:", d.GetTitle()  
             elif isinstance(d, tableview.QueryTableFrame):  
                 print "QueryTable:", d.GetTitle()  
             else:  
                 print "Other:", d.GetTitle()  
   
     def TableHide(self):  
         print "TableHide: not implemented"  
688    
689      def TableJoin(self):      def TableJoin(self):
690          dlg = JoinDialog(self, _("Join Tables"), self.application.session)          dlg = JoinDialog(self, _("Join Tables"), self.application.session)
691          dlg.ShowModal()          dlg.ShowModal()
692    
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()
707    
# Line 929  _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 974  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.1031  
changed lines
  Added in v.1054

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26