/[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 1126 by bh, Mon Jun 2 14:15:43 2003 UTC revision 1293 by jonathan, Mon Jun 23 13:05:58 2003 UTC
# Line 13  The main window Line 13  The main window
13    
14  __version__ = "$Revision$"  __version__ = "$Revision$"
15    
16  __ThubanVersion__ = "0.2" #"$THUBAN_0_2$"  __ThubanVersion__ = "0.8" #"$THUBAN_0_2$"
17  #__BuildDate__ = "$Date$"  #__BuildDate__ = "$Date$"
18    
19  import os  import os
# Line 22  import copy Line 22  import copy
22  from wxPython.wx import *  from wxPython.wx import *
23  from wxPython.wx import __version__ as wxPython_version  from wxPython.wx import __version__ as wxPython_version
24    
 from wxPython.lib.dialogs import wxMultipleChoiceDialog  
   
25  import Thuban  import Thuban
26  import Thuban.version  import Thuban.version
27    
# Line 31  from Thuban import _ Line 29  from Thuban import _
29  from Thuban.Model.session import create_empty_session  from Thuban.Model.session import create_empty_session
30  from Thuban.Model.layer import Layer, RasterLayer  from Thuban.Model.layer import Layer, RasterLayer
31    
32    # XXX: replace this by
33    # from wxPython.lib.dialogs import wxMultipleChoiceDialog
34    # when Thuban does not support wxPython 2.4.0 any more.
35    from Thuban.UI.multiplechoicedialog import wxMultipleChoiceDialog
36    
37  import view  import view
38  import tree  import tree
39  import tableview, identifyview  import tableview, identifyview
# Line 46  from Thuban.UI.dock import DockFrame Line 49  from Thuban.UI.dock import DockFrame
49  from Thuban.UI.join import JoinDialog  from Thuban.UI.join import JoinDialog
50    
51  import resource  import resource
52    import Thuban.Model.resource
53    
54  import projdialog  import projdialog
55    
   
   
56  class MainWindow(DockFrame):  class MainWindow(DockFrame):
57    
58      # Some messages that can be subscribed/unsubscribed directly through      # Some messages that can be subscribed/unsubscribed directly through
# Line 105  class MainWindow(DockFrame): Line 107  class MainWindow(DockFrame):
107    
108          self.init_dialogs()          self.init_dialogs()
109    
110            self.ShowLegend()
111    
112          EVT_CLOSE(self, self.OnClose)          EVT_CLOSE(self, self.OnClose)
113    
114      def Subscribe(self, channel, *args):      def Subscribe(self, channel, *args):
# Line 441  class MainWindow(DockFrame): Line 445  class MainWindow(DockFrame):
445    
446      def About(self):      def About(self):
447          self.RunMessageBox(_("About"),          self.RunMessageBox(_("About"),
448                             _("Thuban %s\n"                             _("Thuban %s\n\n"
449                              #"Build Date: %s\n"                              #"Build Date: %s\n"
450                              "using:\n"                              "Currently using:\n"
451                              "  %s\n"                              "  %s\n"
452                              "  %s\n\n"                              "  %s\n\n"
453                              "Thuban is a program for\n"                              "Thuban is a program for\n"
# Line 575  class MainWindow(DockFrame): Line 579  class MainWindow(DockFrame):
579      def LayerShowTable(self):      def LayerShowTable(self):
580          layer = self.current_layer()          layer = self.current_layer()
581          if layer is not None:          if layer is not None:
582              table = layer.table              table = layer.ShapeStore().Table()
583              name = "table_view" + str(id(table))              name = "table_view" + str(id(table))
584              dialog = self.get_open_dialog(name)              dialog = self.get_open_dialog(name)
585              if dialog is None:              if dialog is None:
# Line 632  class MainWindow(DockFrame): Line 636  class MainWindow(DockFrame):
636          dialog = self.get_open_dialog(name)          dialog = self.get_open_dialog(name)
637    
638          if dialog is None:          if dialog is None:
639              dialog = Classifier(self, name, layer, group)              dialog = Classifier(self, name, self.Map(), layer, group)
640              self.add_dialog(name, dialog)              self.add_dialog(name, dialog)
641              dialog.Show()              dialog.Show()
642          dialog.Raise()          dialog.Raise()
# Line 936  def _has_legend_shown(context): Line 940  def _has_legend_shown(context):
940      """Return true if the legend window is shown"""      """Return true if the legend window is shown"""
941      return context.mainwindow.LegendShown()      return context.mainwindow.LegendShown()
942    
943    def _has_gdal_support(context):
944        """Return True if the GDAL is available"""
945        return Thuban.Model.resource.has_gdal_support()
946    
947  # File menu  # File menu
948  _method_command("new_session", _("&New Session"), "NewSession")  _method_command("new_session", _("&New Session"), "NewSession",
949  _method_command("open_session", _("&Open Session..."), "OpenSession")                  helptext = _("Start a new session"))
950  _method_command("save_session", _("&Save Session"), "SaveSession")  _method_command("open_session", _("&Open Session..."), "OpenSession",
951  _method_command("save_session_as", _("Save Session &As..."), "SaveSessionAs")                  helptext = _("Open a session file"))
952    _method_command("save_session", _("&Save Session"), "SaveSession",
953                    helptext =_("Save this session to the file it was opened from"))
954    _method_command("save_session_as", _("Save Session &As..."), "SaveSessionAs",
955                    helptext = _("Save this session to a new file"))
956  _method_command("toggle_session_tree", _("Session &Tree"), "ToggleSessionTree",  _method_command("toggle_session_tree", _("Session &Tree"), "ToggleSessionTree",
957                  checked = _has_tree_window_shown)                  checked = _has_tree_window_shown,
958                    helptext = _("Toggle on/off the session tree analysis window"))
959  _method_command("toggle_legend", _("Legend"), "ToggleLegend",  _method_command("toggle_legend", _("Legend"), "ToggleLegend",
960                  checked = _has_legend_shown)                  checked = _has_legend_shown,
961  _method_command("exit", _("E&xit"), "Exit")                  helptext = _("Toggle Legend on/off"))
962    _method_command("exit", _("E&xit"), "Exit",
963                    helptext = _("Finish working with Thuban"))
964    
965  # Help menu  # Help menu
966  _method_command("help_about", _("&About..."), "About")  _method_command("help_about", _("&About..."), "About",
967                    helptext = _("Info about Thuban authors, version and modules"))
968    
969    
970  # Map menu  # Map menu
971  _method_command("map_projection", _("Pro&jection..."), "MapProjection")  _method_command("map_projection", _("Pro&jection..."), "MapProjection",
972                    helptext = _("Set or change the map projection"))
973    
974  _tool_command("map_zoom_in_tool", _("&Zoom in"), "ZoomInTool", "ZoomInTool",  _tool_command("map_zoom_in_tool", _("&Zoom in"), "ZoomInTool", "ZoomInTool",
975                helptext = _("Switch to map-mode 'zoom-in'"), icon = "zoom_in",                helptext = _("Switch to map-mode 'zoom-in'"), icon = "zoom_in",
# Line 972  _tool_command("map_label_tool", _("&Labe Line 988  _tool_command("map_label_tool", _("&Labe
988                helptext = _("Add/Remove labels"), icon = "label",                helptext = _("Add/Remove labels"), icon = "label",
989                sensitive = _has_visible_map)                sensitive = _has_visible_map)
990  _method_command("map_full_extent", _("&Full extent"), "FullExtent",  _method_command("map_full_extent", _("&Full extent"), "FullExtent",
991                 helptext = _("Full Extent"), icon = "fullextent",                 helptext = _("Zoom to the full map extent"), icon = "fullextent",
992                sensitive = _has_visible_map)                sensitive = _has_visible_map)
993  _method_command("layer_full_extent", _("&Full layer extent"), "FullLayerExtent",  _method_command("layer_full_extent", _("&Full layer extent"), "FullLayerExtent",
994                 helptext = _("Full Layer Extent"), icon = "fulllayerextent",                  helptext = _("Zoom to the full layer extent"),
995                sensitive = _has_selected_layer)                  icon = "fulllayerextent", sensitive = _has_selected_layer)
996  _method_command("selected_full_extent", _("&Full selection extent"), "FullSelectionExtent",  _method_command("selected_full_extent", _("&Full selection extent"),
997                 helptext = _("Full Selection Extent"), icon = "fullselextent",                  "FullSelectionExtent",
998                sensitive = _has_selected_shapes)                  helptext = _("Zoom to the full selection extent"),
999                    icon = "fullselextent", sensitive = _has_selected_shapes)
1000  _method_command("map_export", _("E&xport"), "ExportMap",  _method_command("map_export", _("E&xport"), "ExportMap",
1001                      helptext = _("Export the map to file"))                  helptext = _("Export the map to file"))
1002  _method_command("map_print", _("Prin&t"), "PrintMap",  _method_command("map_print", _("Prin&t"), "PrintMap",
1003                  helptext = _("Print the map"))                  helptext = _("Print the map"))
1004  _method_command("map_rename", _("&Rename..."), "RenameMap",  _method_command("map_rename", _("&Rename..."), "RenameMap",
1005                  helptext = _("Rename the map"))                  helptext = _("Rename the map"))
1006  _method_command("layer_add", _("&Add Layer..."), "AddLayer",  _method_command("layer_add", _("&Add Layer..."), "AddLayer",
1007                  helptext = _("Add a new layer to active map"))                  helptext = _("Add a new layer to the map"))
1008  _method_command("rasterlayer_add", _("&Add Image Layer..."), "AddRasterLayer",  _method_command("rasterlayer_add", _("&Add Image Layer..."), "AddRasterLayer",
1009                  helptext = _("Add a new image layer to active map"))                  helptext = _("Add a new image layer to the map"),
1010                    sensitive = _has_gdal_support)
1011  _method_command("layer_remove", _("&Remove Layer"), "RemoveLayer",  _method_command("layer_remove", _("&Remove Layer"), "RemoveLayer",
1012                  helptext = _("Remove selected layer(s)"),                  helptext = _("Remove selected layer"),
1013                  sensitive = _can_remove_layer)                  sensitive = _can_remove_layer)
1014    
1015  # Layer menu  # Layer menu
1016  _method_command("layer_projection", _("Pro&jection..."), "LayerProjection",  _method_command("layer_projection", _("Pro&jection..."), "LayerProjection",
1017                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer,
1018                    helptext = _("Specify projection for selected layer"))
1019  _method_command("layer_duplicate", _("&Duplicate"), "DuplicateLayer",  _method_command("layer_duplicate", _("&Duplicate"), "DuplicateLayer",
1020                  helptext = _("Duplicate selected layer(s)"),                  helptext = _("Duplicate selected layer"),
1021            sensitive = lambda context: context.mainwindow.CanDuplicateLayer())            sensitive = lambda context: context.mainwindow.CanDuplicateLayer())
1022  _method_command("layer_rename", _("Re&name ..."), "RenameLayer",  _method_command("layer_rename", _("Re&name ..."), "RenameLayer",
1023                  helptext = _("Rename selected layer"),                  helptext = _("Rename selected layer"),
1024                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
1025  _method_command("layer_raise", _("&Raise"), "RaiseLayer",  _method_command("layer_raise", _("&Raise"), "RaiseLayer",
1026                  helptext = _("Raise selected layer(s)"),                  helptext = _("Raise selected layer"),
1027                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
1028  _method_command("layer_lower", _("&Lower"), "LowerLayer",  _method_command("layer_lower", _("&Lower"), "LowerLayer",
1029                  helptext = _("Lower selected layer(s)"),                  helptext = _("Lower selected layer"),
1030                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
1031  _method_command("layer_show", _("&Show"), "ShowLayer",  _method_command("layer_show", _("&Show"), "ShowLayer",
1032                  helptext = _("Make selected layer(s) visible"),                  helptext = _("Make selected layer visible"),
1033                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
1034  _method_command("layer_hide", _("&Hide"), "HideLayer",  _method_command("layer_hide", _("&Hide"), "HideLayer",
1035                  helptext = _("Make selected layer(s) unvisible"),                  helptext = _("Make selected layer unvisible"),
1036                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
1037  _method_command("layer_show_table", _("Show Ta&ble"), "LayerShowTable",  _method_command("layer_show_table", _("Show Ta&ble"), "LayerShowTable",
1038                  helptext = _("Show the selected layer's table"),                  helptext = _("Show the selected layer's table"),
1039                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
1040  _method_command("layer_properties", _("&Properties..."), "LayerEditProperties",  _method_command("layer_properties", _("&Properties..."), "LayerEditProperties",
1041                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer,
1042                    helptext = _("Edit the properties of the selected layer"))
1043  _method_command("layer_jointable", _("&Join Table..."), "LayerJoinTable",  _method_command("layer_jointable", _("&Join Table..."), "LayerJoinTable",
1044                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer,
1045                    helptext = _("Join and attach a table to the selected layer"))
1046    
1047  def _can_unjoin(context):  def _can_unjoin(context):
1048      """Return whether the Layer/Unjoin command can be executed.      """Return whether the Layer/Unjoin command can be executed.
# Line 1038  def _can_unjoin(context): Line 1059  def _can_unjoin(context):
1059      else:      else:
1060          return 0          return 0
1061  _method_command("layer_unjointable", _("&Unjoin Table..."), "LayerUnjoinTable",  _method_command("layer_unjointable", _("&Unjoin Table..."), "LayerUnjoinTable",
1062                  sensitive = _can_unjoin)                  sensitive = _can_unjoin,
1063                    helptext = _("Undo the last join operation"))
1064    
1065    
1066  def _has_tables(context):  def _has_tables(context):
1067      return bool(context.session.Tables())      return bool(context.session.Tables())
1068    
1069  # Table menu  # Table menu
1070  _method_command("table_open", _("&Open..."), "TableOpen")  _method_command("table_open", _("&Open..."), "TableOpen",
1071  _method_command("table_close", _("&Close"), "TableClose",                  helptext = _("Open a DBF-table from a file"))
1072         sensitive = lambda context: bool(context.session.UnreferencedTables()))  _method_command("table_close", _("&Close..."), "TableClose",
1073           sensitive = lambda context: bool(context.session.UnreferencedTables()),
1074                    helptext = _("Close one or more tables from a list"))
1075  _method_command("table_rename", _("&Rename..."), "TableRename",  _method_command("table_rename", _("&Rename..."), "TableRename",
1076                  sensitive = _has_tables)                  sensitive = _has_tables,
1077  _method_command("table_show", _("&Show"), "TableShow",                  helptext = _("Rename one or more tables"))
1078                  sensitive = _has_tables)  _method_command("table_show", _("&Show..."), "TableShow",
1079                    sensitive = _has_tables,
1080                    helptext = _("Show one or more tables in a dialog"))
1081  _method_command("table_join", _("&Join..."), "TableJoin",  _method_command("table_join", _("&Join..."), "TableJoin",
1082                  sensitive = _has_tables)                  sensitive = _has_tables,
1083                    helptext = _("Join two tables creating a new one"))
1084    
1085  #  Export only under Windows ...  #  Export only under Windows ...
1086  map_menu = ["layer_add", "rasterlayer_add", "layer_remove", "map_rename",  map_menu = ["layer_add", "rasterlayer_add", "layer_remove",
1087                          None,                          None,
1088                            "map_rename",
1089                          "map_projection",                          "map_projection",
1090                          None,                          None,
1091                          "map_zoom_in_tool", "map_zoom_out_tool",                          "map_zoom_in_tool", "map_zoom_out_tool",
# Line 1114  main_toolbar = Menu("<toolbar>", "<toolb Line 1142  main_toolbar = Menu("<toolbar>", "<toolb
1142                       "selected_full_extent",                       "selected_full_extent",
1143                       None,                       None,
1144                       "map_identify_tool", "map_label_tool"])                       "map_identify_tool", "map_label_tool"])
1145    

Legend:
Removed from v.1126  
changed lines
  Added in v.1293

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26