Browse Source

wxGUI: moving code to MapFrameBase (co-author V. Petras)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@48763 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 13 years ago
parent
commit
22b0d8f6a6

+ 10 - 18
gui/wxpython/gui_modules/gcpmapdisp.py

@@ -86,9 +86,12 @@ class MapFrame(MapFrameBase):
         """
         """
         
         
         MapFrameBase.__init__(self, parent = parent, title = title, toolbars = toolbars,
         MapFrameBase.__init__(self, parent = parent, title = title, toolbars = toolbars,
-                              tree = tree, notebook = notebook, lmgr = lmgr, page = page,
                               Map = Map, auimgr = auimgr, name = name, **kwargs)
                               Map = Map, auimgr = auimgr, name = name, **kwargs)
         
         
+        self._layerManager = lmgr   # Layer Manager object
+        self.tree       = tree      # Layer Manager layer tree object
+        self.page       = page      # Notebook page holding the layer tree
+        self.layerbook  = notebook  # Layer Manager layer tree notebook
         #
         #
         # Add toolbars
         # Add toolbars
         #
         #
@@ -158,7 +161,8 @@ class MapFrame(MapFrameBase):
         #
         #
         # initialize region values
         # initialize region values
         #
         #
-        self.__InitDisplay() 
+        self._initMap(map = self.SrcMap) 
+        self._initMap(map = self.TgtMap) 
 
 
         #
         #
         # Bind various events
         # Bind various events
@@ -284,22 +288,6 @@ class MapFrame(MapFrameBase):
             
             
         self._mgr.Update()
         self._mgr.Update()
 
 
-    def __InitDisplay(self):
-        """
-        Initialize map display, set dimensions and map region
-        """
-        self.width, self.height = self.GetClientSize()
-
-        Debug.msg(2, "MapFrame.__InitDisplay():")
-        self.grwiz.SwitchEnv('source')
-        self.SrcMap.ChangeMapSize(self.GetClientSize())
-        self.SrcMap.region = self.SrcMap.GetRegion() # g.region -upgc
-        self.grwiz.SwitchEnv('target')
-        self.TgtMap.ChangeMapSize(self.GetClientSize())
-        self.TgtMap.region = self.TgtMap.GetRegion() # g.region -upgc
-        # self.SrcMap.SetRegion() # adjust region to match display window
-        # self.TgtMap.SetRegion() # adjust region to match display window
-
     def OnUpdateProgress(self, event):
     def OnUpdateProgress(self, event):
         """
         """
         Update progress bar info
         Update progress bar info
@@ -696,4 +684,8 @@ class MapFrame(MapFrameBase):
     def GetShowTarget(self):
     def GetShowTarget(self):
         return self.show_target
         return self.show_target
         
         
+    def GetMapToolbar(self):
+        """!Returns toolbar with zooming tools"""
+        return self.toolbars['gcpdisp']
+        
 # end of class MapFrame
 # end of class MapFrame

+ 40 - 35
gui/wxpython/gui_modules/mapdisp.py

@@ -82,26 +82,17 @@ class MapFrameBase(wx.Frame):
     """
     """
     def __init__(self, parent = None, id = wx.ID_ANY, title = None,
     def __init__(self, parent = None, id = wx.ID_ANY, title = None,
                  style = wx.DEFAULT_FRAME_STYLE, toolbars = None,
                  style = wx.DEFAULT_FRAME_STYLE, toolbars = None,
-                 tree = None, notebook = None, lmgr = None, page = None,
                  Map = None, auimgr = None, name = None, **kwargs):
                  Map = None, auimgr = None, name = None, **kwargs):
         """!
         """!
-        
         @param toolbars array of activated toolbars, e.g. ['map', 'digit']
         @param toolbars array of activated toolbars, e.g. ['map', 'digit']
-        @param tree reference to layer tree
-        @param notebook control book ID in Layer Manager
-        @param lmgr Layer Manager
-        @param page notebook page with layer tree
         @param Map instance of render.Map
         @param Map instance of render.Map
         @param auimgs AUI manager
         @param auimgs AUI manager
         @param name frame name
         @param name frame name
         @param kwargs wx.Frame attributes
         @param kwargs wx.Frame attributes
         """
         """
         
         
-        self._layerManager = lmgr   # Layer Manager object
+
         self.Map        = Map       # instance of render.Map
         self.Map        = Map       # instance of render.Map
-        self.tree       = tree      # Layer Manager layer tree object
-        self.page       = page      # Notebook page holding the layer tree
-        self.layerbook  = notebook  # Layer Manager layer tree notebook
         self.parent     = parent
         self.parent     = parent
         
         
         wx.Frame.__init__(self, parent, id, title, style = style, name = name, **kwargs)
         wx.Frame.__init__(self, parent, id, title, style = style, name = name, **kwargs)
@@ -129,7 +120,21 @@ class MapFrameBase(wx.Frame):
         # Fancy gui
         # Fancy gui
         #
         #
         self._mgr = wx.aui.AuiManager(self)
         self._mgr = wx.aui.AuiManager(self)
-	
+        
+    def _initMap(self, map):
+        """!Initialize map display, set dimensions and map region
+        """
+        if not grass.find_program('g.region', ['--help']):
+            sys.exit(_("GRASS module '%s' not found. Unable to start map "
+                       "display window.") % 'g.region')
+        
+        self.width, self.height = self.GetClientSize()
+        
+        Debug.msg(2, "MapFrame._initMap():")
+        map.ChangeMapSize(self.GetClientSize())
+        map.region = map.GetRegion() # g.region -upgc
+        # self.Map.SetRegion() # adjust region to match display window
+        
     def SetProperty(self, name, value):
     def SetProperty(self, name, value):
         """!Sets property"""
         """!Sets property"""
         self.statusbarManager.SetProperty(name, value)
         self.statusbarManager.SetProperty(name, value)
@@ -225,7 +230,7 @@ class MapFrameBase(wx.Frame):
         Progress bar can be used by other classes.
         Progress bar can be used by other classes.
         """
         """
         return self.statusbarManager.GetProgressBar()
         return self.statusbarManager.GetProgressBar()
-	
+        
     def GetRender(self):
     def GetRender(self):
         """!Returns current instance of render.Map()
         """!Returns current instance of render.Map()
         
         
@@ -241,32 +246,40 @@ class MapFrameBase(wx.Frame):
     def GetWindow(self):
     def GetWindow(self):
         """!Get map window"""
         """!Get map window"""
         return self.MapWindow
         return self.MapWindow
-	
+        
+    def GetMapToolbar(self):
+       """!Returns toolbar with zooming tools"""
+       raise NotImplementedError()
+       
     def StatusbarUpdate(self):
     def StatusbarUpdate(self):
         """!Update statusbar content"""
         """!Update statusbar content"""
         self.statusbarManager.Update()
         self.statusbarManager.Update()
-	
+        
     def IsAutoRendered(self):
     def IsAutoRendered(self):
         """!Check if auto-rendering is enabled"""
         """!Check if auto-rendering is enabled"""
         return self.GetProperty('render')
         return self.GetProperty('render')
-            
+        
     def CoordinatesChanged(self):
     def CoordinatesChanged(self):
         """!Shows current coordinates on statusbar.
         """!Shows current coordinates on statusbar.
         
         
         Used in BufferedWindow to report change of map coordinates (under mouse cursor).
         Used in BufferedWindow to report change of map coordinates (under mouse cursor).
         """
         """
         self.statusbarManager.ShowItem('coordinates')
         self.statusbarManager.ShowItem('coordinates')
-	
+        
     def StatusbarReposition(self):
     def StatusbarReposition(self):
         """!Reposition items in statusbar"""
         """!Reposition items in statusbar"""
         self.statusbarManager.Reposition()
         self.statusbarManager.Reposition()
-	
+        
     def StatusbarEnableLongHelp(self, enable = True):
     def StatusbarEnableLongHelp(self, enable = True):
         """!Enable/disable toolbars long help"""
         """!Enable/disable toolbars long help"""
         for toolbar in self.toolbars.itervalues():
         for toolbar in self.toolbars.itervalues():
             if toolbar:
             if toolbar:
                 toolbar.EnableLongHelp(enable)
                 toolbar.EnableLongHelp(enable)
-		
+        
+    def IsStandalone(self):
+        """!Check if Map display is standalone"""
+        raise NotImplementedError("IsStandalone")
+        
 class MapFrame(MapFrameBase):
 class MapFrame(MapFrameBase):
     """!Main frame for map display window. Drawing takes place in
     """!Main frame for map display window. Drawing takes place in
     child double buffered drawing window.
     child double buffered drawing window.
@@ -288,9 +301,12 @@ class MapFrame(MapFrameBase):
         @param kwargs wx.Frame attributes
         @param kwargs wx.Frame attributes
         """
         """
         MapFrameBase.__init__(self, parent = parent, title = title, toolbars = toolbars,
         MapFrameBase.__init__(self, parent = parent, title = title, toolbars = toolbars,
-                              tree = tree, notebook = notebook, lmgr = lmgr, page = page,
                               Map = Map, auimgr = auimgr, name = name, **kwargs)
                               Map = Map, auimgr = auimgr, name = name, **kwargs)
         
         
+        self._layerManager = lmgr   # Layer Manager object
+        self.tree       = tree      # Layer Manager layer tree object
+        self.page       = page      # Notebook page holding the layer tree
+        self.layerbook  = notebook  # Layer Manager layer tree notebook
         #
         #
         # Add toolbars
         # Add toolbars
         #
         #
@@ -354,7 +370,7 @@ class MapFrame(MapFrameBase):
         #
         #
         # initialize region values
         # initialize region values
         #
         #
-        self._initDisplay() 
+        self._initMap(map = self.Map) 
 
 
         #
         #
         # Bind various events
         # Bind various events
@@ -632,20 +648,6 @@ class MapFrame(MapFrameBase):
         if self._mgr.GetPane(name).IsOk():
         if self._mgr.GetPane(name).IsOk():
             return self._mgr.GetPane(name).IsShown()
             return self._mgr.GetPane(name).IsShown()
         return False
         return False
-    
-    def _initDisplay(self):
-        """!Initialize map display, set dimensions and map region
-        """
-        if not grass.find_program('g.region', ['--help']):
-            sys.exit(_("GRASS module '%s' not found. Unable to start map "
-                       "display window.") % 'g.region')
-        
-        self.width, self.height = self.GetClientSize()
-        
-        Debug.msg(2, "MapFrame._initDisplay():")
-        self.Map.ChangeMapSize(self.GetClientSize())
-        self.Map.region = self.Map.GetRegion() # g.region -upgc
-        # self.Map.SetRegion() # adjust region to match display window
         
         
     def OnUpdateProgress(self, event):
     def OnUpdateProgress(self, event):
         """!Update progress bar info
         """!Update progress bar info
@@ -670,7 +672,6 @@ class MapFrame(MapFrameBase):
                 if pgnum > -1:
                 if pgnum > -1:
                     self.layerbook.SetSelection(pgnum)
                     self.layerbook.SetSelection(pgnum)
                     self._layerManager.curr_page = self.layerbook.GetCurrentPage()
                     self._layerManager.curr_page = self.layerbook.GetCurrentPage()
-                    self.layerbook
         
         
         event.Skip()
         event.Skip()
         
         
@@ -1684,6 +1685,10 @@ class MapFrame(MapFrameBase):
         """
         """
         return self._layerManager
         return self._layerManager
     
     
+    def GetMapToolbar(self):
+        """!Returns toolbar with zooming tools"""
+        return self.toolbars['map']
+    
 class MapApp(wx.App):
 class MapApp(wx.App):
     def OnInit(self):
     def OnInit(self):
         wx.InitAllImageHandlers()
         wx.InitAllImageHandlers()

+ 2 - 7
gui/wxpython/gui_modules/mapdisp_window.py

@@ -834,7 +834,7 @@ class BufferedWindow(MapWindow, wx.Window):
         if not self.parent.IsStandalone() and \
         if not self.parent.IsStandalone() and \
                 self.parent.GetLayerManager().gcpmanagement:
                 self.parent.GetLayerManager().gcpmanagement:
             # -> georectifier (redraw GCPs)
             # -> georectifier (redraw GCPs)
-            if self.parent.toolbars['gcpdisp']:
+            if self.parent.GetMapToolbar():
                 if self == self.parent.TgtMapWindow:
                 if self == self.parent.TgtMapWindow:
                     coordtype = 'target'
                     coordtype = 'target'
                 else:
                 else:
@@ -1705,12 +1705,7 @@ class BufferedWindow(MapWindow, wx.Window):
         else:
         else:
             enable = False
             enable = False
         
         
-        if self.parent.GetName() == 'MapWindow':
-            toolbar = self.parent.toolbars['map']
-        elif self.parent.GetName() == 'GRMapWindow':
-            toolbar = self.parent.toolbars['georect']
-        elif self.parent.GetName() == 'GCPMapWindow':
-            toolbar = self.parent.toolbars['gcpdisp']
+        toolbar = self.parent.GetMapToolbar()
         
         
         toolbar.Enable('zoomback', enable)
         toolbar.Enable('zoomback', enable)