diff --git a/NAMESPACE b/NAMESPACE index 5ccc3e1..0e7163c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -36,6 +36,9 @@ S3method(parseThis,character) S3method(parseThis,factor) S3method(plot,jaspGraphs) S3method(plot,jaspGraphsPlot) +S3method(plotEditing,default) +S3method(plotEditing,ggplot) +S3method(plotEditing,jaspGraphsPlot) S3method(print,jaspGraphs) S3method(print,jaspGraphsPlot) export(.graphOptions) diff --git a/R/plotEditing.R b/R/plotEditing.R index fce3af5..6b6723c 100644 --- a/R/plotEditing.R +++ b/R/plotEditing.R @@ -64,14 +64,30 @@ optionsDiff <- function(new, old) { } #' @title Edit a plot -#' @param graph a ggplot2 object +#' @param graph a ggplot2 object or a jaspGraphsPlot object #' @param newOptions an options list #' #' @export plotEditing <- function(graph, newOptions) { + UseMethod("plotEditing", graph) +} + +#' @export +plotEditing.default <- function(graph, newOptions) { + stop2("graph should be a ggplot or a jaspGraphsPlot") +} + +#' @export +plotEditing.jaspGraphsPlot <- function(graph, newOptions) { + if (length(graph) != 1L) + stop2("This plot cannot be edited because it consists of multiple smaller figures.") - if (!is_ggplot(graph)) - stop2("graph should be a ggplot2") + graph[[1L]] <- plotEditing(graph[[1L]], newOptions) + return(graph) +} + +#' @export +plotEditing.ggplot <- function(graph, newOptions) { if (isTRUE(newOptions[["resetPlot"]])) { if (hasOriginalEditingOptions(graph)) { diff --git a/R/plotEditingOptions.R b/R/plotEditingOptions.R index bfbe8bd..c52a813 100644 --- a/R/plotEditingOptions.R +++ b/R/plotEditingOptions.R @@ -82,7 +82,9 @@ getPlotEditingOptions.qgraph <- function(graph) { #' @exportS3Method getPlotEditingOptions.jaspGraphsPlot <- function(graph) { - plotEditingOptionsError(gettext("This plot cannot be edited because it consists of multiple smaller figures.")) + if (length(graph) != 1L) + return(plotEditingOptionsError(gettext("This plot cannot be edited because it consists of multiple smaller figures."))) + return(getPlotEditingOptions(graph[[1L]])) } #' @exportS3Method getPlotEditingOptions "function" diff --git a/man/plotEditing.Rd b/man/plotEditing.Rd index afb1595..ac72818 100644 --- a/man/plotEditing.Rd +++ b/man/plotEditing.Rd @@ -7,7 +7,7 @@ plotEditing(graph, newOptions) } \arguments{ -\item{graph}{a ggplot2 object} +\item{graph}{a ggplot2 object or a jaspGraphsPlot object} \item{newOptions}{an options list} }