/[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 879 by jonathan, Fri May 9 16:33:10 2003 UTC revision 937 by jonathan, Tue May 20 15:24:51 2003 UTC
# Line 2  Line 2 
2  # Authors:  # Authors:
3  # Jan-Oliver Wagner <[email protected]>  # Jan-Oliver Wagner <[email protected]>
4  # Bernhard Herzog <[email protected]>  # Bernhard Herzog <[email protected]>
5    # Frank Koormann <[email protected]>
6  #  #
7  # This program is free software under the GPL (>=v2)  # This program is free software under the GPL (>=v2)
8  # Read the file COPYING coming with Thuban for details.  # Read the file COPYING coming with Thuban for details.
# Line 18  __ThubanVersion__ = "0.2" #"$THUBAN_0_2$ Line 19  __ThubanVersion__ = "0.2" #"$THUBAN_0_2$
19  import os  import os
20    
21  from wxPython.wx import *  from wxPython.wx import *
22    from wxPython.wx import __version__ as wxPython_version
23    
24  import Thuban  import Thuban
25    import Thuban.version
26    
27  from Thuban import _  from Thuban import _
28  from Thuban.Model.session import create_empty_session  from Thuban.Model.session import create_empty_session
29  from Thuban.Model.layer import Layer  from Thuban.Model.layer import Layer, RasterLayer
30  from Thuban.Model.color import Color  from Thuban.Model.color import Color
31  from Thuban.Model.proj import Projection  from Thuban.Model.proj import Projection
32    
# Line 359  class MainWindow(DockFrame): Line 363  class MainWindow(DockFrame):
363                  d.Close()                  d.Close()
364    
365      def NewSession(self):      def NewSession(self):
366          self.save_modified_session()          if self.save_modified_session() != wxID_CANCEL:
367          self.prepare_new_session()              self.prepare_new_session()
368          self.application.SetSession(create_empty_session())              self.application.SetSession(create_empty_session())
369    
370      def OpenSession(self):      def OpenSession(self):
371          self.save_modified_session()          if self.save_modified_session() != wxID_CANCEL:
372          dlg = wxFileDialog(self, _("Open Session"), ".", "",              dlg = wxFileDialog(self, _("Open Session"), ".", "",
373                             "Thuban Session File (*.thuban)|*.thuban", wxOPEN)                                 "Thuban Session File (*.thuban)|*.thuban",
374          if dlg.ShowModal() == wxID_OK:                                 wxOPEN)
375              self.prepare_new_session()              if dlg.ShowModal() == wxID_OK:
376              self.application.OpenSession(dlg.GetPath())                  self.prepare_new_session()
377          dlg.Destroy()                  self.application.OpenSession(dlg.GetPath())
378                dlg.Destroy()
379    
380      def SaveSession(self):      def SaveSession(self):
381          if self.application.session.filename == None:          if self.application.session.filename == None:
# Line 432  class MainWindow(DockFrame): Line 437  class MainWindow(DockFrame):
437    
438      def About(self):      def About(self):
439          self.RunMessageBox(_("About"),          self.RunMessageBox(_("About"),
440                             _("Thuban v%s\n"                             _("Thuban %s\n"
441                              #"Build Date: %s\n"                              #"Build Date: %s\n"
442                              "\n"                              "using:\n"
443                                "  %s\n"
444                                "  %s\n\n"
445                              "Thuban is a program for\n"                              "Thuban is a program for\n"
446                              "exploring geographic data.\n"                              "exploring geographic data.\n"
447                              "Copyright (C) 2001-2003 Intevation GmbH.\n"                              "Copyright (C) 2001-2003 Intevation GmbH.\n"
448                              "Thuban is licensed under the GNU GPL"                              "Thuban is licensed under the GNU GPL"
449                             % __ThubanVersion__), #__BuildDate__)),                              % (Thuban.version.longversion,
450                                   "wxPython %s" % wxPython_version,
451                                   "Python %d.%d.%d" % sys.version_info[:3]
452                                  )),
453    #                           % __ThubanVersion__), #__BuildDate__)),
454                             wxOK | wxICON_INFORMATION)                             wxOK | wxICON_INFORMATION)
455    
456      def AddLayer(self):      def AddLayer(self):
# Line 465  class MainWindow(DockFrame): Line 476  class MainWindow(DockFrame):
476                      self.canvas.FitMapToWindow()                      self.canvas.FitMapToWindow()
477          dlg.Destroy()          dlg.Destroy()
478    
479        def AddRasterLayer(self):
480            dlg = wxFileDialog(self, _("Select an image file"), ".", "", "*.*",
481                               wxOPEN)
482            if dlg.ShowModal() == wxID_OK:
483                filename = dlg.GetPath()
484                title = os.path.splitext(os.path.basename(filename))[0]
485                layer = RasterLayer(title, filename)
486                map = self.canvas.Map()
487                has_layers = map.HasLayers()
488                try:
489                    map.AddLayer(layer)
490                except IOError:
491                    # the layer couldn't be opened
492                    self.RunMessageBox(_("Add Image Layer"),
493                                       _("Can't open the file '%s'.") % filename)
494                else:
495                    if not has_layers:
496                        # if we're adding a layer to an empty map, fit the
497                        # new map to the window
498                        self.canvas.FitMapToWindow()
499            dlg.Destroy()
500    
501      def RemoveLayer(self):      def RemoveLayer(self):
502          layer = self.current_layer()          layer = self.current_layer()
503          if layer is not None:          if layer is not None:
# Line 665  class MainWindow(DockFrame): Line 698  class MainWindow(DockFrame):
698      def FullSelectionExtent(self):      def FullSelectionExtent(self):
699          self.canvas.FitSelectedToWindow()          self.canvas.FitSelectedToWindow()
700    
701        def ExportMap(self):
702            self.canvas.Export()
703    
704      def PrintMap(self):      def PrintMap(self):
705          self.canvas.Print()          self.canvas.Print()
706    
# Line 816  _method_command("layer_full_extent", _(" Line 852  _method_command("layer_full_extent", _("
852  _method_command("selected_full_extent", _("&Full selection extent"), "FullSelectionExtent",  _method_command("selected_full_extent", _("&Full selection extent"), "FullSelectionExtent",
853                 helptext = _("Full Selection Extent"), icon = "fullselextent",                 helptext = _("Full Selection Extent"), icon = "fullselextent",
854                sensitive = _has_selected_shapes)                sensitive = _has_selected_shapes)
855    _method_command("map_export", _("E&xport"), "ExportMap",
856                        helptext = _("Export the map to file"))
857  _method_command("map_print", _("Prin&t"), "PrintMap",  _method_command("map_print", _("Prin&t"), "PrintMap",
858                  helptext = _("Print the map"))                  helptext = _("Print the map"))
859  _method_command("map_rename", _("&Rename..."), "RenameMap",  _method_command("map_rename", _("&Rename..."), "RenameMap",
860                  helptext = _("Rename the map"))                  helptext = _("Rename the map"))
861  _method_command("layer_add", _("&Add Layer..."), "AddLayer",  _method_command("layer_add", _("&Add Layer..."), "AddLayer",
862                  helptext = _("Add a new layer to active map"))                  helptext = _("Add a new layer to active map"))
863    _method_command("rasterlayer_add", _("&Add Image Layer..."), "AddRasterLayer",
864                    helptext = _("Add a new image layer to active map"))
865  _method_command("layer_remove", _("&Remove Layer"), "RemoveLayer",  _method_command("layer_remove", _("&Remove Layer"), "RemoveLayer",
866                  helptext = _("Remove selected layer(s)"),                  helptext = _("Remove selected layer(s)"),
867                  sensitive = _can_remove_layer)                  sensitive = _can_remove_layer)
# Line 858  _method_command("table_show", _("&Show") Line 898  _method_command("table_show", _("&Show")
898  _method_command("table_hide", _("&Hide"), "TableHide")  _method_command("table_hide", _("&Hide"), "TableHide")
899  _method_command("table_join", _("&Join..."), "TableJoin")  _method_command("table_join", _("&Join..."), "TableJoin")
900    
901  # the menu structure  #  Export only under Windows ...
902  main_menu = Menu("<main>", "<main>",  map_menu = ["layer_add", "rasterlayer_add", "layer_remove", "map_rename",
                  [Menu("file", _("&File"),  
                        ["new_session", "open_session", None,  
                         "save_session", "save_session_as", None,  
                         "toggle_session_tree", None,  
                         "exit"]),  
                   Menu("map", _("&Map"),  
                        ["layer_add", "layer_remove", "map_rename",  
903                          None,                          None,
904                          "map_projection",                          "map_projection",
905                          None,                          None,
# Line 879  main_menu = Menu("<main>", "<main>", Line 912  main_menu = Menu("<main>", "<main>",
912                          "map_identify_tool", "map_label_tool",                          "map_identify_tool", "map_label_tool",
913                          None,                          None,
914                          "toggle_legend",                          "toggle_legend",
915                          None,                          None]
916                          "map_print"]),  if wxPlatform == '__WXMSW__':
917        map_menu.append("map_export")
918    map_menu.append("map_print")
919    
920    # the menu structure
921    main_menu = Menu("<main>", "<main>",
922                     [Menu("file", _("&File"),
923                           ["new_session", "open_session", None,
924                            "save_session", "save_session_as", None,
925                            "toggle_session_tree", None,
926                            "exit"]),
927                      Menu("map", _("&Map"), map_menu),
928                    Menu("layer", _("&Layer"),                    Menu("layer", _("&Layer"),
929                          ["layer_raise", "layer_lower",                          ["layer_raise", "layer_lower",
930                          None,                          None,

Legend:
Removed from v.879  
changed lines
  Added in v.937

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26