/[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 1622 by jan, Thu Aug 21 11:56:06 2003 UTC revision 1782 by bh, Mon Oct 6 17:31:54 2003 UTC
# Line 12  The main window Line 12  The main window
12  """  """
13    
14  __version__ = "$Revision$"  __version__ = "$Revision$"
15    # $Source$
16  __ThubanVersion__ = "0.8" #"$THUBAN_0_2$"  # $Id$
 #__BuildDate__ = "$Date$"  
17    
18  import os  import os
19  import copy  import copy
20    
21  from wxPython.wx import *  from wxPython.wx import *
 from wxPython.wx import __version__ as wxPython_version  
22    
23  import Thuban  import Thuban
 import Thuban.version  
24    
25  from Thuban import _  from Thuban import _
26    from Thuban.Model.messages import TITLE_CHANGED
27  from Thuban.Model.session import create_empty_session  from Thuban.Model.session import create_empty_session
28  from Thuban.Model.layer import Layer, RasterLayer  from Thuban.Model.layer import Layer, RasterLayer
29  from Thuban.Model.postgisdb import PostGISShapeStore  from Thuban.Model.postgisdb import PostGISShapeStore, has_postgis_support
30  # XXX: replace this by  # XXX: replace this by
31  # from wxPython.lib.dialogs import wxMultipleChoiceDialog  # from wxPython.lib.dialogs import wxMultipleChoiceDialog
32  # when Thuban does not support wxPython 2.4.0 any more.  # when Thuban does not support wxPython 2.4.0 any more.
# Line 49  from about import About Line 47  from about import About
47    
48  from Thuban.UI.dock import DockFrame  from Thuban.UI.dock import DockFrame
49  from Thuban.UI.join import JoinDialog  from Thuban.UI.join import JoinDialog
50  from Thuban.UI.dbdialog import DBFrame, ChooseDBTableDialog  from Thuban.UI.dbdialog import DBFrame, DBDialog, ChooseDBTableDialog
51  import resource  import resource
52  import Thuban.Model.resource  import Thuban.Model.resource
53    
# Line 104  class MainWindow(DockFrame): Line 102  class MainWindow(DockFrame):
102          canvas.Subscribe(VIEW_POSITION, self.view_position_changed)          canvas.Subscribe(VIEW_POSITION, self.view_position_changed)
103          canvas.Subscribe(SHAPES_SELECTED, self.identify_view_on_demand)          canvas.Subscribe(SHAPES_SELECTED, self.identify_view_on_demand)
104          self.canvas = canvas          self.canvas = canvas
105            self.canvas.Subscribe(TITLE_CHANGED, self.title_changed)
106    
107          self.SetMainWindow(self.canvas)          self.SetMainWindow(self.canvas)
108    
# Line 376  class MainWindow(DockFrame): Line 375  class MainWindow(DockFrame):
375                                 "Thuban Session File (*.thuban)|*.thuban",                                 "Thuban Session File (*.thuban)|*.thuban",
376                                 wxOPEN)                                 wxOPEN)
377              if dlg.ShowModal() == wxID_OK:              if dlg.ShowModal() == wxID_OK:
378                  self.application.OpenSession(dlg.GetPath())                  self.application.OpenSession(dlg.GetPath(),
379                                                 self.run_db_param_dialog)
380              dlg.Destroy()              dlg.Destroy()
381    
382        def run_db_param_dialog(self, parameters, message):
383            dlg = DBDialog(self, _("DB Connection Parameters"), parameters,
384                           message)
385            return dlg.RunDialog()
386    
387      def SaveSession(self):      def SaveSession(self):
388          if self.application.session.filename == None:          if self.application.session.filename == None:
389              self.SaveSessionAs()              self.SaveSessionAs()
# Line 414  class MainWindow(DockFrame): Line 419  class MainWindow(DockFrame):
419    
420      def SetMap(self, map):      def SetMap(self, map):
421          self.canvas.SetMap(map)          self.canvas.SetMap(map)
422          self.__SetTitle(map.Title())          self.update_title()
423    
424          dialog = self.FindRegisteredDock("legend")          dialog = self.FindRegisteredDock("legend")
425          if dialog is not None:          if dialog is not None:
# Line 506  class MainWindow(DockFrame): Line 511  class MainWindow(DockFrame):
511      def AddDBLayer(self):      def AddDBLayer(self):
512          """Add a layer read from a database"""          """Add a layer read from a database"""
513          session = self.application.Session()          session = self.application.Session()
514          dlg = ChooseDBTableDialog(self.application.Session(), self,-1, "")          dlg = ChooseDBTableDialog(self, self.application.Session())
515    
516          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
517              dbconn, dbtable = dlg.GetTable()              dbconn, dbtable = dlg.GetTable()
# Line 853  class MainWindow(DockFrame): Line 858  class MainWindow(DockFrame):
858              title = dlg.GetValue()              title = dlg.GetValue()
859              if title != "":              if title != "":
860                  self.Map().SetTitle(title)                  self.Map().SetTitle(title)
                 self.__SetTitle(title)  
861    
862          dlg.Destroy()          dlg.Destroy()
863    
# Line 895  class MainWindow(DockFrame): Line 899  class MainWindow(DockFrame):
899                  # FIXME: bring dialog to front?                  # FIXME: bring dialog to front?
900                  pass                  pass
901    
902      def __SetTitle(self, title):      def title_changed(self, map):
903          self.SetTitle("Thuban - " + title)          """Subscribed to the canvas' TITLE_CHANGED messages"""
904            self.update_title()
905    
906        def update_title(self):
907            """Update the window's title according to it's current state.
908    
909            In this default implementation the title is 'Thuban - ' followed
910            by the map's title or simply 'Thuban' if there is not map.
911            Derived classes should override this method to get different
912            titles.
913    
914            This method is called automatically by other methods when the
915            title may have to change. For the methods implemented in this
916            class this usually only means that a different map has been set
917            or the current map's title has changed.
918            """
919            map = self.Map()
920            if map is not None:
921                title = _("Thuban - %s") % (map.Title(),)
922            else:
923                title = _("Thuban")
924            self.SetTitle(title)
925    
926    
927  #  #
928  # Define all the commands available in the main window  # Define all the commands available in the main window
# Line 972  def _has_dbconnections(context): Line 998  def _has_dbconnections(context):
998      """Return whether the the session has database connections"""      """Return whether the the session has database connections"""
999      return context.session.HasDBConnections()      return context.session.HasDBConnections()
1000    
1001    def _has_postgis_support(context):
1002        return has_postgis_support()
1003    
1004    
1005  # File menu  # File menu
1006  _method_command("new_session", _("&New Session"), "NewSession",  _method_command("new_session", _("&New Session"), "NewSession",
1007                  helptext = _("Start a new session"))                  helptext = _("Start a new session"))
# Line 988  _method_command("toggle_legend", _("Lege Line 1018  _method_command("toggle_legend", _("Lege
1018                  checked = _has_legend_shown,                  checked = _has_legend_shown,
1019                  helptext = _("Toggle Legend on/off"))                  helptext = _("Toggle Legend on/off"))
1020  _method_command("database_management", _("&Database Connections..."),  _method_command("database_management", _("&Database Connections..."),
1021                  "DatabaseManagement")                  "DatabaseManagement",
1022                    sensitive = _has_postgis_support)
1023  _method_command("exit", _("E&xit"), "Exit",  _method_command("exit", _("E&xit"), "Exit",
1024                  helptext = _("Finish working with Thuban"))                  helptext = _("Finish working with Thuban"))
1025    

Legend:
Removed from v.1622  
changed lines
  Added in v.1782

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26