[GRASS-SVN] r54034 - in grass/trunk/gui/wxpython: gui_core lmgr mapdisp nviz

svn_grass at osgeo.org svn_grass at osgeo.org
Sun Nov 25 08:28:03 PST 2012


Author: annakrat
Date: 2012-11-25 08:28:03 -0800 (Sun, 25 Nov 2012)
New Revision: 54034

Modified:
   grass/trunk/gui/wxpython/gui_core/mapwindow.py
   grass/trunk/gui/wxpython/lmgr/layertree.py
   grass/trunk/gui/wxpython/mapdisp/mapwindow.py
   grass/trunk/gui/wxpython/nviz/mapwindow.py
   grass/trunk/gui/wxpython/nviz/tools.py
Log:
wxGUI/layertree: move method from mapwindow to layertree (co-author: wenzeslaus)

Modified: grass/trunk/gui/wxpython/gui_core/mapwindow.py
===================================================================
--- grass/trunk/gui/wxpython/gui_core/mapwindow.py	2012-11-25 13:52:42 UTC (rev 54033)
+++ grass/trunk/gui/wxpython/gui_core/mapwindow.py	2012-11-25 16:28:03 UTC (rev 54034)
@@ -275,49 +275,3 @@
             return self.tree.GetLayerInfo(item, key = 'nviz')
         
         return item
-        
-    def GetSelectedLayer(self, type = 'layer', multi = False):
-        """!Get selected layer from layer tree
-        
-        @param type 'item' / 'layer' / 'nviz'
-        @param multi return first selected layer or all
-        
-        @return layer / map layer properties / nviz properties
-        @return None / [] on failure
-        """
-        ret = []
-        if not self.tree or \
-                not self.tree.GetSelection():
-            if multi:
-                return []
-            else:
-                return None
-        
-        if multi and \
-                type == 'item':
-            return self.tree.GetSelections()
-        
-        for item in self.tree.GetSelections():
-            if not item.IsChecked():
-                if multi:
-                    continue
-                else:
-                    return None
-
-            if type == 'item': # -> multi = False
-                return item
-        
-            try:
-                if type == 'nviz':
-                    layer = self.tree.GetLayerInfo(item, key = 'nviz')
-                else:
-                    layer = self.tree.GetLayerInfo(item, key = 'maplayer')
-            except:
-                layer = None
-
-            if multi:
-                ret.append(layer)
-            else:
-                return layer
-            
-        return ret

Modified: grass/trunk/gui/wxpython/lmgr/layertree.py
===================================================================
--- grass/trunk/gui/wxpython/lmgr/layertree.py	2012-11-25 13:52:42 UTC (rev 54033)
+++ grass/trunk/gui/wxpython/lmgr/layertree.py	2012-11-25 16:28:03 UTC (rev 54034)
@@ -240,25 +240,45 @@
         self.Bind(wx.EVT_IDLE,                  self.OnIdle)
         self.Bind(wx.EVT_MOTION,                self.OnMotion)
 
-    def GetSelectedLayer(self):
+    def _getSelectedLayer(self):
         """!Get selected layer.
 
         @return None if no layer selected
         @return first layer (GenericTreeItem instance) of all selected
         """
-        layers = self.GetSelections()
-        if len(layers) >= 1:
-            return layers[0]
-        return None
+        return self.GetSelectedLayer(multi = False, checkedOnly = False)
 
     # for compatibility
-    layer_selected = property(fget = GetSelectedLayer)
+    layer_selected = property(fget = _getSelectedLayer)
 
-    def GetSelectedLayers(self):
+    def GetSelectedLayers(self, checkedOnly = False):
         """!Get selected layers as a list.
         """
-        return self.GetSelections()
+        return self.GetSelectedLayers(multi = True, checkedOnly = False)
 
+    def GetSelectedLayer(self, multi = False, checkedOnly = False):
+        """!Get selected layer from layer tree.
+        
+        @param multi return multiple selection as a list
+        @param checkedOnly return only the checked layers
+
+        @return None or [] for multi == True if no layer selected 
+        @return first layer (GenericTreeItem instance) of all selected or a list
+        """
+        ret = []
+        layers = self.GetSelections()
+
+        for layer in layers:
+            if not checkedOnly or (checkedOnly and layer.IsChecked()):
+                ret.append(layer)
+        if multi:
+            return ret
+
+        if ret:
+            return ret[0]
+
+        return None
+
     def _setGradient(self, iType = None):
         """!Set gradient for items
 

Modified: grass/trunk/gui/wxpython/mapdisp/mapwindow.py
===================================================================
--- grass/trunk/gui/wxpython/mapdisp/mapwindow.py	2012-11-25 13:52:42 UTC (rev 54033)
+++ grass/trunk/gui/wxpython/mapdisp/mapwindow.py	2012-11-25 16:28:03 UTC (rev 54034)
@@ -54,7 +54,7 @@
     def __init__(self, parent, giface, Map, frame,
                  id = wx.ID_ANY, tree = None, lmgr = None,
                  style = wx.NO_FULL_REPAINT_ON_RESIZE, **kwargs):
-        MapWindow.__init__(self, parent = parent, giface = giface, id = id, Map = Map,
+        MapWindow.__init__(self, parent = parent, giface = giface, Map = Map,
                            frame = frame, tree = tree, lmgr = lmgr, **kwargs)
         wx.Window.__init__(self, parent = parent, id = id, style = style, **kwargs)
         
@@ -1174,7 +1174,7 @@
                          message = _("Querying is not implemented in standalone mode of Map Display"))
                 return
 
-            layers = self.GetSelectedLayer(type = 'item', multi = True)
+            layers = self.tree.GetSelectedLayer(multi = True, checkedOnly = True)
 
             self.frame.Query(self.mouse['begin'][0],self.mouse['begin'][1], layers)
         
@@ -1579,8 +1579,9 @@
         @param render True to re-render display
         """
         if not layers:
-            layers = self.GetSelectedLayer(multi = True)
-        
+            layers = self.tree.GetSelectedLayer(multi = True, checkedOnly = False)
+            layers = [self.tree.GetLayerInfo(layer, key = 'maplayer') for layer in layers]
+
         if not layers:
             return
         

Modified: grass/trunk/gui/wxpython/nviz/mapwindow.py
===================================================================
--- grass/trunk/gui/wxpython/nviz/mapwindow.py	2012-11-25 13:52:42 UTC (rev 54033)
+++ grass/trunk/gui/wxpython/nviz/mapwindow.py	2012-11-25 16:28:03 UTC (rev 54034)
@@ -358,8 +358,9 @@
                 self.lmgr.nviz.UpdatePage('cplane')
                 self.lmgr.nviz.UpdatePage('decoration')
                 self.lmgr.nviz.UpdatePage('animation')
-                layer = self.GetSelectedLayer()
+                layer = self.tree.GetSelectedLayer(multi = False, checkedOnly = True)
                 if layer:
+                    layer = self.tree.GetLayerInfo(layer, key = 'maplayer')
                     if layer.type ==  'raster':
                         self.lmgr.nviz.UpdatePage('surface')
                         self.lmgr.nviz.UpdatePage('fringe')
@@ -766,7 +767,7 @@
                          message = _("Querying is not implemented in standalone mode of Map Display"))
                 return
 
-            layers = self.GetSelectedLayer(type = 'item', multi = True)
+            layers = self.tree.GetSelectedLayer(multi = True, checkedOnly = True)
 
             self.frame.Query(self.mouse['begin'][0],self.mouse['begin'][1], layers)
 
@@ -1512,7 +1513,7 @@
         
         # update tools window
         if hasattr(self.lmgr, "nviz") and \
-                item ==  self.GetSelectedLayer(type = 'item'):
+                item == self.tree.GetSelectedLayer(multi = False, checkedOnly = True):
             toolWin = self.lmgr.nviz
             if layer.type ==  'raster':
                 win = toolWin.FindWindowById( \
@@ -1695,7 +1696,7 @@
         
         # update tools window
         if hasattr(self.lmgr, "nviz") and \
-                item ==  self.GetSelectedLayer(type = 'item'):
+                item ==  self.tree.GetSelectedLayer(multi = False, checkedOnly = True):
             toolWin = self.lmgr.nviz
             
             toolWin.UpdatePage('vector')

Modified: grass/trunk/gui/wxpython/nviz/tools.py
===================================================================
--- grass/trunk/gui/wxpython/nviz/tools.py	2012-11-25 13:52:42 UTC (rev 54033)
+++ grass/trunk/gui/wxpython/nviz/tools.py	2012-11-25 16:28:03 UTC (rev 54034)
@@ -126,7 +126,8 @@
     def SetInitialMaps(self):
         """!Set initial raster and vector map"""
         for l_type in ('raster', 'vector', '3d-raster'):
-            selectedLayer = self.mapWindow.GetSelectedLayer()
+            selectedLayer = self.parent.GetLayerTree().GetSelectedLayer(multi = False, checkedOnly = True)
+            selectedLayer = self.parent.GetLayerTree().GetLayerInfo(selectedLayer, key = 'maplayer')
             layers = self.mapWindow.Map.GetListOfLayers(l_type = l_type, l_active = True)
             if selectedLayer in layers:
                 selection = selectedLayer.GetName()



More information about the grass-commit mailing list