/[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 633 by jonathan, Wed Apr 9 10:11:07 2003 UTC revision 723 by bh, Thu Apr 24 15:31:53 2003 UTC
# Line 36  from menu import Menu Line 36  from menu import Menu
36    
37  from context import Context  from context import Context
38  from command import registry, Command, ToolCommand  from command import registry, Command, ToolCommand
39  from messages import LAYER_SELECTED, SHAPES_SELECTED, VIEW_POSITION, DOCKABLE_DOCKED, DOCKABLE_UNDOCKED, DOCKABLE_CLOSED  from messages import LAYER_SELECTED, SHAPES_SELECTED, VIEW_POSITION
40    
41  from Thuban.UI.dock import DockableWindow, DockFrame, DockPanel  from Thuban.UI.dock import DockFrame
42    
43    import resource
44    
45  # the directory where the toolbar icons are stored  import projdialog
 bitmapdir = os.path.join(Thuban.__path__[0], os.pardir, "Resources", "Bitmaps")  
 bitmapext = ".xpm"  
46    
 ID_WINDOW_LEGEND = 4001  
 ID_WINDOW_CANVAS = 4002  
47    
48    
49  class MainWindow(DockFrame):  class MainWindow(DockFrame):
# Line 243  class MainWindow(DockFrame): Line 240  class MainWindow(DockFrame):
240              command = registry.Command(name)              command = registry.Command(name)
241              if command is not None:              if command is not None:
242                  ID = self.get_id(name)                  ID = self.get_id(name)
243                  filename = os.path.join(bitmapdir, command.Icon()) + bitmapext                  bitmap = resource.GetBitmapResource(command.Icon(),
244                  bitmap = wxBitmap(filename, wxBITMAP_TYPE_XPM)                                                      wxBITMAP_TYPE_XPM)
245                  toolbar.AddTool(ID, bitmap,                  toolbar.AddTool(ID, bitmap,
246                                  shortHelpString = command.HelpText(),                                  shortHelpString = command.HelpText(),
247                                  isToggle = command.IsCheckCommand())                                  isToggle = command.IsCheckCommand())
# Line 403  class MainWindow(DockFrame): Line 400  class MainWindow(DockFrame):
400    
401      def SetMap(self, map):      def SetMap(self, map):
402          self.canvas.SetMap(map)          self.canvas.SetMap(map)
403            self.__SetTitle(map.Title())
404          #self.legendPanel.SetMap(map)          #self.legendPanel.SetMap(map)
405    
406      def Map(self):      def Map(self):
# Line 446  class MainWindow(DockFrame): Line 444  class MainWindow(DockFrame):
444          if dlg.ShowModal() == wxID_OK:          if dlg.ShowModal() == wxID_OK:
445              filename = dlg.GetPath()              filename = dlg.GetPath()
446              title = os.path.splitext(os.path.basename(filename))[0]              title = os.path.splitext(os.path.basename(filename))[0]
447              layer = Layer(title, filename)              store = self.application.Session().OpenShapefile(filename)
448                layer = Layer(title, store)
449              map = self.canvas.Map()              map = self.canvas.Map()
450              has_layers = map.HasLayers()              has_layers = map.HasLayers()
451              try:              try:
# Line 517  class MainWindow(DockFrame): Line 516  class MainWindow(DockFrame):
516          dlg.Destroy()          dlg.Destroy()
517          return color          return color
518    
     def LayerFillColor(self):  
         layer = self.current_layer()  
         if layer is not None:  
             color = self.choose_color()  
             if color is not None:  
                 layer.GetClassification().SetDefaultFill(color)  
   
     def LayerTransparentFill(self):  
         layer = self.current_layer()  
         if layer is not None:  
             layer.GetClassification().SetDefaultFill(Color.Transparent)  
   
     def LayerOutlineColor(self):  
         layer = self.current_layer()  
         if layer is not None:  
             color = self.choose_color()  
             if color is not None:  
                 layer.GetClassification().SetDefaultLineColor(color)  
   
     def LayerNoOutline(self):  
         layer = self.current_layer()  
         if layer is not None:  
             layer.GetClassification().SetDefaultLineColor(Color.Transparent)  
   
519      def HideLayer(self):      def HideLayer(self):
520          layer = self.current_layer()          layer = self.current_layer()
521          if layer is not None:          if layer is not None:
# Line 568  class MainWindow(DockFrame): Line 543  class MainWindow(DockFrame):
543                  pass                  pass
544    
545      def Projection(self):      def Projection(self):
         map = self.canvas.Map()  
         proj = map.projection  
         if proj is None:  
             proj4Dlg = proj4dialog.Proj4Dialog(NULL, None, map.BoundingBox())  
         else:  
             proj4Dlg = proj4dialog.Proj4Dialog(NULL, map.projection.params,  
                                                map.BoundingBox())  
         if proj4Dlg.ShowModal() == wxID_OK:  
             params = proj4Dlg.GetParams()  
             if params is not None:  
                 proj = Projection(params)  
             else:  
                 proj = None  
             map.SetProjection(proj)  
         proj4Dlg.Destroy()  
546    
547      def Classify(self):          name = "projection"
548            dialog = self.get_open_dialog(name)
549    
550            if dialog is None:
551                map = self.canvas.Map()
552                dialog = projdialog.ProjFrame(self, name, map)
553                self.add_dialog(name, dialog)
554                dialog.Show()
555            dialog.Raise()
556    
557        def LayerEditProperties(self):
558    
559          #          #
560          # the menu option for this should only be available if there          # the menu option for this should only be available if there
# Line 593  class MainWindow(DockFrame): Line 563  class MainWindow(DockFrame):
563          #          #
564    
565          layer = self.current_layer()          layer = self.current_layer()
566          self.OpenClassifier(layer)          self.OpenLayerProperties(layer)
567    
568      def OpenClassifier(self, layer, group = None):      def OpenLayerProperties(self, layer, group = None):
569          name = "classifier" + str(id(layer))          name = "layer_properties" + str(id(layer))
570          dialog = self.get_open_dialog(name)          dialog = self.get_open_dialog(name)
571    
572          if dialog is None:          if dialog is None:
# Line 616  class MainWindow(DockFrame): Line 586  class MainWindow(DockFrame):
586          dialog = self.FindRegisteredDock(name)          dialog = self.FindRegisteredDock(name)
587    
588          if dialog is None:          if dialog is None:
589              title = "Legend: %s" % self.Map().Title()              dialog = self.CreateDock(name, -1, _("Legend"), wxLAYOUT_LEFT)
             dialog = self.CreateDock(name, -1, title, wxLAYOUT_LEFT)  
590              legend.LegendPanel(dialog, None, self)              legend.LegendPanel(dialog, None, self)
591              dialog.Dock()              dialog.Dock()
592              dialog.GetPanel().SetMap(self.Map())              dialog.GetPanel().SetMap(self.Map())
# Line 652  class MainWindow(DockFrame): Line 621  class MainWindow(DockFrame):
621      def PrintMap(self):      def PrintMap(self):
622          self.canvas.Print()          self.canvas.Print()
623    
624        def RenameMap(self):
625            dlg = wxTextEntryDialog(self, "Map Title: ", "Rename Map",
626                                    self.Map().Title())
627            if dlg.ShowModal() == wxID_OK:
628                title = dlg.GetValue()
629                if title != "":
630                    self.Map().SetTitle(title)
631                    self.__SetTitle(title)
632    
633            dlg.Destroy()
634    
635      def identify_view_on_demand(self, layer, shapes):      def identify_view_on_demand(self, layer, shapes):
636          name = "identify_view"          name = "identify_view"
637          if self.canvas.CurrentTool() == "IdentifyTool":          if self.canvas.CurrentTool() == "IdentifyTool":
# Line 663  class MainWindow(DockFrame): Line 643  class MainWindow(DockFrame):
643                  # FIXME: bring dialog to front?                  # FIXME: bring dialog to front?
644                  pass                  pass
645    
646        def __SetTitle(self, title):
647            self.SetTitle("Thuban - " + title)
648    
649  #  #
650  # Define all the commands available in the main window  # Define all the commands available in the main window
651  #  #
# Line 765  _method_command("map_full_extent", _("&F Line 748  _method_command("map_full_extent", _("&F
748                sensitive = _has_visible_map)                sensitive = _has_visible_map)
749  _method_command("map_print", _("Prin&t"), "PrintMap",  _method_command("map_print", _("Prin&t"), "PrintMap",
750                  helptext = _("Print the map"))                  helptext = _("Print the map"))
751    _method_command("map_rename", _("&Rename"), "RenameMap",
752                    helptext = _("Rename the map"))
753    
754  # Layer menu  # Layer menu
755  _method_command("layer_add", _("&Add Layer"), "AddLayer",  _method_command("layer_add", _("&Add Layer"), "AddLayer",
# Line 772  _method_command("layer_add", _("&Add Lay Line 757  _method_command("layer_add", _("&Add Lay
757  _method_command("layer_remove", _("&Remove Layer"), "RemoveLayer",  _method_command("layer_remove", _("&Remove Layer"), "RemoveLayer",
758                  helptext = _("Remove selected layer(s)"),                  helptext = _("Remove selected layer(s)"),
759                  sensitive = _can_remove_layer)                  sensitive = _can_remove_layer)
 _method_command("layer_fill_color", _("&Fill Color"), "LayerFillColor",  
                 helptext = _("Set the fill color of selected layer(s)"),  
                 sensitive = _has_selected_layer)  
 _method_command("layer_transparent_fill", _("&Transparent Fill"),  
                 "LayerTransparentFill",  
                 helptext = _("Do not fill the selected layer(s)"),  
                 sensitive = _has_selected_layer)  
 _method_command("layer_outline_color", _("&Outline Color"), "LayerOutlineColor",  
                 helptext = _("Set the outline color of selected layer(s)"),  
                 sensitive = _has_selected_layer)  
 _method_command("layer_no_outline", _("&No Outline"), "LayerNoOutline",  
                 helptext= _("Do not draw the outline of the selected layer(s)"),  
                 sensitive = _has_selected_layer)  
760  _method_command("layer_raise", _("&Raise"), "RaiseLayer",  _method_command("layer_raise", _("&Raise"), "RaiseLayer",
761                  helptext = _("Raise selected layer(s)"),                  helptext = _("Raise selected layer(s)"),
762                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
# Line 800  _method_command("layer_hide", _("&Hide") Line 772  _method_command("layer_hide", _("&Hide")
772  _method_command("layer_show_table", _("Show Ta&ble"), "LayerShowTable",  _method_command("layer_show_table", _("Show Ta&ble"), "LayerShowTable",
773                  helptext = _("Show the selected layer's table"),                  helptext = _("Show the selected layer's table"),
774                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
775  _method_command("layer_classifier", _("Classify"), "Classify",  _method_command("layer_properties", _("Properties"), "LayerEditProperties",
776                  sensitive = _has_selected_layer)                  sensitive = _has_selected_layer)
777    
778  # the menu structure  # the menu structure
# Line 822  main_menu = Menu("<main>", "<main>", Line 794  main_menu = Menu("<main>", "<main>",
794                          None,                          None,
795                          "toggle_legend",                          "toggle_legend",
796                          None,                          None,
797                          "map_print"]),                          "map_print",
                   Menu("layer", _("&Layer"),  
                        ["layer_fill_color", "layer_transparent_fill",  
                         "layer_outline_color", "layer_no_outline",  
798                          None,                          None,
799                          "layer_raise", "layer_lower",                          "map_rename"]),
800                      Menu("layer", _("&Layer"),
801                            ["layer_raise", "layer_lower",
802                          None,                          None,
803                          "layer_show", "layer_hide",                          "layer_show", "layer_hide",
804                          None,                          None,
805                          "layer_show_table",                          "layer_show_table",
806                          None,                          None,
807                          "layer_classifier"]),                          "layer_properties"]),
808                    Menu("help", _("&Help"),                    Menu("help", _("&Help"),
809                         ["help_about"])])                         ["help_about"])])
810    

Legend:
Removed from v.633  
changed lines
  Added in v.723

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26