/[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 815 by jonathan, Mon May 5 15:04:57 2003 UTC revision 923 by frank, Mon May 19 09:12:25 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
# Line 39  from command import registry, Command, T Line 43  from command import registry, Command, T
43  from messages import LAYER_SELECTED, SHAPES_SELECTED, VIEW_POSITION  from messages import LAYER_SELECTED, SHAPES_SELECTED, VIEW_POSITION
44    
45  from Thuban.UI.dock import DockFrame  from Thuban.UI.dock import DockFrame
46    from Thuban.UI.join import JoinDialog
47    
48  import resource  import resource
49    
# Line 60  class MainWindow(DockFrame): Line 65  class MainWindow(DockFrame):
65      # implemented in the __getattr__ method.      # implemented in the __getattr__ method.
66      delegated_methods = {"SelectLayer": "canvas",      delegated_methods = {"SelectLayer": "canvas",
67                           "SelectShapes": "canvas",                           "SelectShapes": "canvas",
68                             "SelectedShapes": "canvas",
69                           }                           }
70    
71      def __init__(self, parent, ID, title, application, interactor,      def __init__(self, parent, ID, title, application, interactor,
# Line 363  class MainWindow(DockFrame): Line 369  class MainWindow(DockFrame):
369    
370      def OpenSession(self):      def OpenSession(self):
371          self.save_modified_session()          self.save_modified_session()
372          dlg = wxFileDialog(self, _("Open Session"), ".", "", "*.thuban", wxOPEN)          dlg = wxFileDialog(self, _("Open Session"), ".", "",
373                               "Thuban Session File (*.thuban)|*.thuban", wxOPEN)
374          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
375              self.prepare_new_session()              self.prepare_new_session()
376              self.application.OpenSession(dlg.GetPath())              self.application.OpenSession(dlg.GetPath())
# Line 377  class MainWindow(DockFrame): Line 384  class MainWindow(DockFrame):
384    
385      def SaveSessionAs(self):      def SaveSessionAs(self):
386          dlg = wxFileDialog(self, _("Save Session As"), ".", "",          dlg = wxFileDialog(self, _("Save Session As"), ".", "",
387                             "*.thuban", wxSAVE|wxOVERWRITE_PROMPT)                             "Thuban Session File (*.thuban)|*.thuban",
388                               wxSAVE|wxOVERWRITE_PROMPT)
389          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
390              self.application.session.SetFilename(dlg.GetPath())              self.application.session.SetFilename(dlg.GetPath())
391              self.application.SaveSession()              self.application.SaveSession()
# Line 428  class MainWindow(DockFrame): Line 436  class MainWindow(DockFrame):
436    
437      def About(self):      def About(self):
438          self.RunMessageBox(_("About"),          self.RunMessageBox(_("About"),
439                             _("Thuban v%s\n"                             _("Thuban %s\n"
440                              #"Build Date: %s\n"                              #"Build Date: %s\n"
441                              "\n"                              "using:\n"
442                                "  %s\n"
443                                "  %s\n\n"
444                              "Thuban is a program for\n"                              "Thuban is a program for\n"
445                              "exploring geographic data.\n"                              "exploring geographic data.\n"
446                              "Copyright (C) 2001-2003 Intevation GmbH.\n"                              "Copyright (C) 2001-2003 Intevation GmbH.\n"
447                              "Thuban is licensed under the GNU GPL"                              "Thuban is licensed under the GNU GPL"
448                             % __ThubanVersion__), #__BuildDate__)),                              % (Thuban.version.longversion,
449                                   "wxPython %s" % wxPython_version,
450                                   "Python %d.%d.%d" % sys.version_info[:3]
451                                  )),
452    #                           % __ThubanVersion__), #__BuildDate__)),
453                             wxOK | wxICON_INFORMATION)                             wxOK | wxICON_INFORMATION)
454    
455      def AddLayer(self):      def AddLayer(self):
# Line 500  class MainWindow(DockFrame): Line 514  class MainWindow(DockFrame):
514          """Return true if a layer is currently selected"""          """Return true if a layer is currently selected"""
515          return self.canvas.HasSelectedLayer()          return self.canvas.HasSelectedLayer()
516    
517      def choose_color(self):      def has_selected_shapes(self):
518          """Run the color selection dialog and return the selected color.          """Return true if a shape is currently selected"""
519            return self.canvas.HasSelectedShapes()
         If the user cancels, return None.  
         """  
         dlg = wxColourDialog(self)  
         color = None  
         if dlg.ShowModal() == wxID_OK:  
             data = dlg.GetColourData()  
             wxc = data.GetColour()  
             color = Color(wxc.Red() / 255.0,  
                           wxc.Green() / 255.0,  
                           wxc.Blue() / 255.0)  
         dlg.Destroy()  
         return color  
520    
521      def HideLayer(self):      def HideLayer(self):
522          layer = self.current_layer()          layer = self.current_layer()
# Line 591  class MainWindow(DockFrame): Line 593  class MainWindow(DockFrame):
593              dialog.Show()              dialog.Show()
594          dialog.Raise()          dialog.Raise()
595    
596        def LayerJoinTable(self):
597            print "LayerJoinTable"
598    
599        def LayerUnjoinTable(self):
600            print "LayerUnjoinTable"
601    
602      def ShowLegend(self):      def ShowLegend(self):
603          if not self.LegendShown():          if not self.LegendShown():
# Line 615  class MainWindow(DockFrame): Line 622  class MainWindow(DockFrame):
622          dialog = self.FindRegisteredDock("legend")          dialog = self.FindRegisteredDock("legend")
623          return dialog is not None and dialog.IsShown()          return dialog is not None and dialog.IsShown()
624    
625        def TableOpen(self):
626            print "TableOpen"
627            dlg = wxFileDialog(self, _("Open Table"), ".", "",
628                               "DBF Files (*.dbf)|*.dbf|" +
629                               "CSV Files (*.csv)|*.csv|" +
630                               "All Files (*.*)|*.*",
631                               wxOPEN)
632            if dlg.ShowModal() == wxID_OK:
633                #self.application.session.OpenTable(dlg.GetPath())
634                pass
635    
636            dlg.Destroy()
637    
638        def TableClose(self):
639            print "TableClose"
640    
641        def TableShow(self):
642            print "TableShow"
643    
644        def TableHide(self):
645            print "TableHide"
646    
647        def TableJoin(self):
648            print "TableJoin"
649            dlg = JoinDialog(self, _("Join Tables"), self.application.session)
650            if dlg.ShowModal() == wxID_OK:
651                print "OK"
652    
653      def ZoomInTool(self):      def ZoomInTool(self):
654          self.canvas.ZoomInTool()          self.canvas.ZoomInTool()
655    
# Line 634  class MainWindow(DockFrame): Line 669  class MainWindow(DockFrame):
669      def FullExtent(self):      def FullExtent(self):
670          self.canvas.FitMapToWindow()          self.canvas.FitMapToWindow()
671    
672        def FullLayerExtent(self):
673            self.canvas.FitLayerToWindow(self.current_layer())
674    
675        def FullSelectionExtent(self):
676            self.canvas.FitSelectedToWindow()
677    
678        def ExportMap(self):
679            self.canvas.Export()
680    
681      def PrintMap(self):      def PrintMap(self):
682          self.canvas.Print()          self.canvas.Print()
683    
# Line 715  def _has_selected_layer(context): Line 759  def _has_selected_layer(context):
759      """Return true if a layer is selected in the context"""      """Return true if a layer is selected in the context"""
760      return context.mainwindow.has_selected_layer()      return context.mainwindow.has_selected_layer()
761    
762    def _has_selected_shapes(context):
763        """Return true if a layer is selected in the context"""
764        return context.mainwindow.has_selected_shapes()
765    
766  def _can_remove_layer(context):  def _can_remove_layer(context):
767      return context.mainwindow.CanRemoveLayer()      return context.mainwindow.CanRemoveLayer()
768    
# Line 775  _tool_command("map_label_tool", _("&Labe Line 823  _tool_command("map_label_tool", _("&Labe
823  _method_command("map_full_extent", _("&Full extent"), "FullExtent",  _method_command("map_full_extent", _("&Full extent"), "FullExtent",
824                 helptext = _("Full Extent"), icon = "fullextent",                 helptext = _("Full Extent"), icon = "fullextent",
825                sensitive = _has_visible_map)                sensitive = _has_visible_map)
826    _method_command("layer_full_extent", _("&Full layer extent"), "FullLayerExtent",
827                   helptext = _("Full Layer Extent"), icon = "fulllayerextent",
828                  sensitive = _has_selected_layer)
829    _method_command("selected_full_extent", _("&Full selection extent"), "FullSelectionExtent",
830                   helptext = _("Full Selection Extent"), icon = "fullselextent",
831                  sensitive = _has_selected_shapes)
832    _method_command("map_export", _("E&xport"), "ExportMap",
833                        helptext = _("Export the map to file"))
834  _method_command("map_print", _("Prin&t"), "PrintMap",  _method_command("map_print", _("Prin&t"), "PrintMap",
835                  helptext = _("Print the map"))                  helptext = _("Print the map"))
836  _method_command("map_rename", _("&Rename..."), "RenameMap",  _method_command("map_rename", _("&Rename..."), "RenameMap",
# Line 805  _method_command("layer_show_table", _("S Line 861  _method_command("layer_show_table", _("S
861                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
862  _method_command("layer_properties", _("&Properties..."), "LayerEditProperties",  _method_command("layer_properties", _("&Properties..."), "LayerEditProperties",
863                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
864    _method_command("layer_jointable", _("&Join Table..."), "LayerJoinTable",
865                    sensitive = _has_selected_layer)
866    _method_command("layer_unjointable", _("&Unjoin Table..."), "LayerUnjoinTable",
867                    sensitive = _has_selected_layer)
868    
869  # the menu structure  # Table menu
870  main_menu = Menu("<main>", "<main>",  _method_command("table_open", _("&Open..."), "TableOpen")
871                   [Menu("file", _("&File"),  _method_command("table_close", _("&Close"), "TableClose")
872                         ["new_session", "open_session", None,  _method_command("table_show", _("&Show"), "TableShow")
873                          "save_session", "save_session_as", None,  _method_command("table_hide", _("&Hide"), "TableHide")
874                          "toggle_session_tree", None,  _method_command("table_join", _("&Join..."), "TableJoin")
875                          "exit"]),  
876                    Menu("map", _("&Map"),  #  Export only under Windows ...
877                         ["layer_add", "layer_remove", "map_rename",  map_menu = ["layer_add", "layer_remove", "map_rename",
878                          None,                          None,
879                          "map_projection",                          "map_projection",
880                          None,                          None,
881                          "map_zoom_in_tool", "map_zoom_out_tool",                          "map_zoom_in_tool", "map_zoom_out_tool",
882                          "map_pan_tool", "map_full_extent",                          "map_pan_tool",
883                            "map_full_extent",
884                            "layer_full_extent",
885                            "selected_full_extent",
886                          None,                          None,
887                          "map_identify_tool", "map_label_tool",                          "map_identify_tool", "map_label_tool",
888                          None,                          None,
889                          "toggle_legend",                          "toggle_legend",
890                          None,                          None]
891                          "map_print"]),  if wxPlatform == '__WXMSW__':
892        map_menu.append("map_export")
893    map_menu.append("map_print")
894    
895    # the menu structure
896    main_menu = Menu("<main>", "<main>",
897                     [Menu("file", _("&File"),
898                           ["new_session", "open_session", None,
899                            "save_session", "save_session_as", None,
900                            "toggle_session_tree", None,
901                            "exit"]),
902                      Menu("map", _("&Map"), map_menu),
903                    Menu("layer", _("&Layer"),                    Menu("layer", _("&Layer"),
904                          ["layer_raise", "layer_lower",                          ["layer_raise", "layer_lower",
905                          None,                          None,
906                          "layer_show", "layer_hide",                          "layer_show", "layer_hide",
907                          None,                          None,
908                            "layer_projection",
909                            None,
910                          "layer_show_table",                          "layer_show_table",
911                            "layer_jointable",
912                            "layer_unjointable",
913                          None,                          None,
                         "layer_projection",  
914                          "layer_properties"]),                          "layer_properties"]),
915                      Menu("table", _("&Table"),
916                           ["table_open", "table_close",
917                           None,
918                           "table_show", "table_hide",
919                           None,
920                           "table_join"]),
921                    Menu("help", _("&Help"),                    Menu("help", _("&Help"),
922                         ["help_about"])])                         ["help_about"])])
923    
# Line 842  main_menu = Menu("<main>", "<main>", Line 925  main_menu = Menu("<main>", "<main>",
925    
926  main_toolbar = Menu("<toolbar>", "<toolbar>",  main_toolbar = Menu("<toolbar>", "<toolbar>",
927                      ["map_zoom_in_tool", "map_zoom_out_tool", "map_pan_tool",                      ["map_zoom_in_tool", "map_zoom_out_tool", "map_pan_tool",
928                       "map_full_extent", None,                       "map_full_extent",
929                         "layer_full_extent",
930                         "selected_full_extent",
931                         None,
932                       "map_identify_tool", "map_label_tool"])                       "map_identify_tool", "map_label_tool"])

Legend:
Removed from v.815  
changed lines
  Added in v.923

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26