Browse Source

wxGUI/gmodeler: display data if model done

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@72314 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 7 years ago
parent
commit
9f511f54b2
1 changed files with 20 additions and 3 deletions
  1. 20 3
      gui/wxpython/gmodeler/frame.py

+ 20 - 3
gui/wxpython/gmodeler/frame.py

@@ -151,7 +151,7 @@ class ModelFrame(wx.Frame):
         # rewrite default method to avoid hiding progress bar
         # rewrite default method to avoid hiding progress bar
         self._gconsole.Bind(EVT_CMD_DONE, self.OnCmdDone)
         self._gconsole.Bind(EVT_CMD_DONE, self.OnCmdDone)
         self.Bind(EVT_CMD_PREPARE, self.OnCmdPrepare)
         self.Bind(EVT_CMD_PREPARE, self.OnCmdPrepare)
-        self.Bind(EVT_MODEL_DONE, self.OnDone)
+        self.Bind(EVT_MODEL_DONE, self.OnModelDone)
         
         
         self.notebook.AddPage(page=self.canvas, text=_('Model'), name='model')
         self.notebook.AddPage(page=self.canvas, text=_('Model'), name='model')
         self.notebook.AddPage(
         self.notebook.AddPage(
@@ -612,9 +612,9 @@ class ModelFrame(wx.Frame):
     def OnRunModel(self, event):
     def OnRunModel(self, event):
         """Run entire model"""
         """Run entire model"""
         self.start_time = time.time()
         self.start_time = time.time()
-        self.model.Run(self._gconsole, self.OnDone, parent=self)
+        self.model.Run(self._gconsole, self.OnModelDone, parent=self)
 
 
-    def OnDone(self, event):
+    def OnModelDone(self, event):
         """Computation finished
         """Computation finished
         """
         """
         self.SetStatusText('', 0)
         self.SetStatusText('', 0)
@@ -636,6 +636,22 @@ class ModelFrame(wx.Frame):
         # delete intermediate data
         # delete intermediate data
         self._deleteIntermediateData()
         self._deleteIntermediateData()
 
 
+        # display data if required
+        for data in self.model.GetData():
+            if not data.HasDisplay():
+                continue
+
+            # remove existing map layers first
+            layers =  self._giface.GetLayerList().GetLayersByName(data.GetValue())
+            if layers:
+                for layer in layers:
+                    self._giface.GetLayerList().DeleteLayer(layer)
+                
+            # add new map layer
+            self._giface.GetLayerList().AddLayer(
+                ltype=data.GetPrompt(), name=data.GetValue(), checked=True,
+                cmd=data.GetDisplayCmd())
+
     def OnValidateModel(self, event, showMsg=True):
     def OnValidateModel(self, event, showMsg=True):
         """Validate entire model"""
         """Validate entire model"""
         if self.model.GetNumItems() < 1:
         if self.model.GetNumItems() < 1:
@@ -1683,6 +1699,7 @@ class ModelEvtHandler(ogl.ShapeEvtHandler):
                 layers = self.frame._giface.GetLayerList().GetLayersByName(shape.GetValue())
                 layers = self.frame._giface.GetLayerList().GetLayersByName(shape.GetValue())
                 for layer in layers:
                 for layer in layers:
                     self.frame._giface.GetLayerList().DeleteLayer(layer)
                     self.frame._giface.GetLayerList().DeleteLayer(layer)
+                    
         except GException as e:
         except GException as e:
             GError(parent=self,
             GError(parent=self,
                    message='{}'.format(e))
                    message='{}'.format(e))