Example #1
0
 def _get_model(self, doc, root=None, parent=None, comm=None):
     from holoviews.plotting.plot import Plot
     if root is None:
         return self.get_root(doc, comm)
     ref = root.ref['id']
     if self.object is None:
         model = _BkSpacer()
     else:
         if isinstance(self.object, Plot):
             plot = self.object
         else:
             plot = self._render(doc, comm, root)
         plot.pane = self
         backend = plot.renderer.backend
         if hasattr(plot.renderer, 'get_plot_state'):
             state = plot.renderer.get_plot_state(plot)
         else:
             # Compatibility with holoviews<1.13.0
             state = plot.state
         kwargs = {
             p: v
             for p, v in self.get_param_values()
             if p in Layoutable.param and p != 'name'
         }
         child_pane = self._panes.get(backend, Pane)(state, **kwargs)
         self._update_plot(plot, child_pane)
         model = child_pane._get_model(doc, root, parent, comm)
         if ref in self._plots:
             old_plot, old_pane = self._plots[ref]
             old_plot.comm = None  # Ensures comm does not get cleaned up
             old_plot.cleanup()
         self._plots[ref] = (plot, child_pane)
     self._models[ref] = (model, parent)
     return model
Example #2
0
 def _get_model(self, doc, root=None, parent=None, comm=None):
     if root is None:
         return self.get_root(doc, comm)
     if self._layout_panel is None:
         model = _BkSpacer(**{
             p: getattr(self, p) for p in Layoutable.param if p != 'name'
         })
     else:
         model = self._layout_panel._get_model(doc, root, parent, comm)
     self._models[root.ref['id']] = (model, parent)
     return model
Example #3
0
    def _get_model(self, doc, root=None, parent=None, comm=None):
        from holoviews.plotting.plot import Plot
        if root is None:
            return self.get_root(doc, comm)
        ref = root.ref['id']
        if self.object is None:
            model = _BkSpacer()
            self._models[ref] = (model, parent)
            return model

        if self._restore_plot is not None:
            plot = self._restore_plot
            self._restore_plot = None
        elif isinstance(self.object, Plot):
            plot = self.object
        else:
            plot = self._render(doc, comm, root)

        plot.pane = self
        backend = plot.renderer.backend
        if hasattr(plot.renderer, 'get_plot_state'):
            state = plot.renderer.get_plot_state(plot)
        else:
            # Compatibility with holoviews<1.13.0
            state = plot.state

        # Ensure rerender if content is responsive but layout is centered
        if (backend == 'bokeh' and self.center
                and state.sizing_mode not in ('fixed', None)
                and not self._responsive_content):
            self._responsive_content = True
            self._update_layout()
            self._restore_plot = plot
            raise RerenderError()
        else:
            self._responsive_content = False

        kwargs = {
            p: v
            for p, v in self.param.values().items()
            if p in Layoutable.param and p != 'name'
        }
        child_pane = self._get_pane(backend, state, **kwargs)
        self._update_plot(plot, child_pane)
        model = child_pane._get_model(doc, root, parent, comm)
        if ref in self._plots:
            old_plot, old_pane = self._plots[ref]
            old_plot.comm = None  # Ensures comm does not get cleaned up
            old_plot.cleanup()
        self._plots[ref] = (plot, child_pane)
        self._models[ref] = (model, parent)
        return model
Example #4
0
 def _get_model(self, doc, root=None, parent=None, comm=None):
     if root is None:
         return self._get_root(doc, comm)
     ref = root.ref['id']
     if self.object is None:
         model = _BkSpacer()
     else:
         plot = self._render(doc, comm, root)
         child_pane = self._panes.get(self.backend, Pane)(plot.state)
         model = child_pane._get_model(doc, root, parent, comm)
         if ref in self._plots:
             old_plot, old_pane = self._plots[ref]
             old_plot.comm = None # Ensure comm does not cleaned up
             old_plot.cleanup()
         self._plots[ref] = (plot, child_pane)
     self._models[ref] = (model, parent)
     return model
Example #5
0
 def _get_model(self, doc, root=None, parent=None, comm=None):
     from holoviews.plotting.plot import Plot
     if root is None:
         return self.get_root(doc, comm)
     ref = root.ref['id']
     if self.object is None:
         model = _BkSpacer()
     else:
         if isinstance(self.object, Plot):
             plot = self.object
         else:
             plot = self._render(doc, comm, root)
         plot.pane = self
         backend = plot.renderer.backend
         child_pane = self._panes.get(backend, Pane)(plot.state)
         self._update_plot(plot, child_pane)
         model = child_pane._get_model(doc, root, parent, comm)
         if ref in self._plots:
             old_plot, old_pane = self._plots[ref]
             old_plot.comm = None  # Ensures comm does not get cleaned up
             old_plot.cleanup()
         self._plots[ref] = (plot, child_pane)
     self._models[ref] = (model, parent)
     return model