Skip to content

Commit 203a7d9

Browse files
committed
remove preset_default
not needed
1 parent d011272 commit 203a7d9

File tree

4 files changed

+50
-83
lines changed

4 files changed

+50
-83
lines changed

R/layer_entity_class.R

Lines changed: 39 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
#' @export
88
#' @param layer Character string naming the ggplot2 layer function (e.g., 'geom_point')
99
#' @param presets List of preset configurations
10-
#' @param preset_default Character string naming the default preset
1110
#' @param value The value of the layer entity
1211
#' @param ... Additional parameters passed to entity constructor
1312
#' @return A layer_entity object
@@ -19,36 +18,30 @@
1918
#' default = list(color = 'red'),
2019
#' blue = list(color = 'blue')
2120
#' ),
22-
#' preset_default = 'default',
2321
#' value = preset('default')
2422
#' )
2523
#' @rdname layer_entity
2624
#' @include entity_class.R struct_preset_class.R
27-
layer_entity = function(layer = 'geom_point', presets = list(), preset_default = 'default', value = preset('default'), ...) {
28-
25+
layer_entity = function(layer = 'geom_point', presets = list(), value = preset('default'), ...) {
26+
2927
# If value is a character string, convert it to a preset
3028
if (is.character(value) && length(value) == 1) {
3129
value = preset(value)
3230
}
33-
31+
3432
# NEW: If value is a direct ggplot2 layer object, create a custom preset
3533
if (is(value, 'Layer') || is(value, 'theme') || is(value, 'Scale') || is(value, 'Facet')) {
3634
# Create a custom preset with the provided layer
3735
custom_presets = list(custom = value)
3836
presets = c(presets, custom_presets)
3937
# Set the value to use the custom preset
4038
value = preset('custom')
41-
# Update preset_default to use custom if no default specified
42-
if (preset_default == 'default' && !'default' %in% names(presets)) {
43-
preset_default = 'custom'
44-
}
4539
}
46-
40+
4741
# new object
4842
out = .layer_entity(
4943
layer = layer,
5044
presets = presets,
51-
preset_default = preset_default,
5245
value = value,
5346
...
5447
)
@@ -60,8 +53,7 @@ layer_entity = function(layer = 'geom_point', presets = list(), preset_default =
6053
contains = 'entity',
6154
slots = c(
6255
layer = 'character',
63-
presets = 'list',
64-
preset_default = 'character'
56+
presets = 'list'
6557
),
6658
prototype = list(
6759
name = 'ggplot2 layer',
@@ -70,15 +62,9 @@ layer_entity = function(layer = 'geom_point', presets = list(), preset_default =
7062
value = list(),
7163
layer = 'geom_point',
7264
presets = list(),
73-
preset_default = 'default',
7465
.params = 'layer'
7566
),
7667
validity = function(object) {
77-
# Check that preset_default exists in presets
78-
if (length(object@preset_default) > 0 &&
79-
!object@preset_default %in% c(names(object@presets), 'default')) {
80-
return("preset_default must be 'default' or a name in presets")
81-
}
8268
return(TRUE)
8369
}
8470
)
@@ -90,12 +76,12 @@ setGeneric("register_preset<-", function(obj, preset_name, value, force = TRUE)
9076
setMethod(f = 'register_preset<-',
9177
signature = c('layer_entity','character','list'),
9278
definition = function(obj, preset_name, value, force = TRUE) {
93-
79+
9480
check = preset_name %in% c(names(obj@presets), 'default')
9581
if (check && !force) {
9682
stop('This preset already exists. To replace it use "force = TRUE".')
9783
}
98-
84+
9985
obj@presets[[preset_name]] = value
10086
return(obj)
10187
}
@@ -117,12 +103,12 @@ setMethod(f = 'available_presets',
117103
setMethod(f = "value<-",
118104
signature = c("layer_entity"),
119105
definition = function(obj, value) {
120-
106+
121107
# If value is a character string, convert it to a preset
122108
if (is.character(value) && length(value) == 1) {
123109
value = preset(value)
124110
}
125-
111+
126112
# If value is a direct ggplot2 layer object, create a custom preset
127113
if (is(value, 'Layer') || is(value, 'theme') || is(value, 'Scale') || is(value, 'Facet')) {
128114
# Create a custom preset with the provided layer
@@ -131,25 +117,24 @@ setMethod(f = "value<-",
131117
# Set the value to use the custom preset
132118
value = preset('custom')
133119
}
134-
120+
135121
if (is(value, 'struct_preset')) {
136122
# check for valid preset (local only)
137-
local_check = value$preset %in% c(names(obj@presets), 'default')
138-
123+
local_check = value$preset %in% c(names(obj@presets))
124+
139125
if (!local_check) {
140126
available_local = names(obj@presets)
141-
stop('"', value$preset, '" is not a valid preset for layer_entity "',
142-
obj@layer, '". Choose one of: ', paste(available_local, collapse = ', '),
143-
'. The default is "', obj@preset_default, '"')
127+
stop('"', value$preset, '" is not a valid preset for layer_entity "',
128+
obj@layer, '". Choose one of: ', paste(available_local, collapse = ', '))
144129
}
145130
}
146-
131+
147132
# standardise names
148133
if (is.list(value)) {
149134
names(value) = ggplot2::standardise_aes_names(names(value))
150135
}
151136
obj = callNextMethod(obj, value)
152-
137+
153138
return(obj)
154139
}
155140
)
@@ -159,29 +144,28 @@ setMethod(f = "value<-",
159144
setMethod(f = "$<-",
160145
signature = c("layer_entity"),
161146
definition = function(x, name, value) {
162-
147+
163148
# If value is a ggplot2 layer object, store it directly
164149
if (is(value, 'Layer') || is(value, 'theme') || is(value, 'Scale') || is(value, 'Facet')) {
165150
name = ggplot2::standardise_aes_names(name)
166151
x[[name]] = value
167152
return(x)
168153
}
169-
154+
170155
if (is(value, 'struct_preset')) {
171156
# check for valid preset (local only)
172-
local_check = value$preset %in% c(names(x@presets), 'default')
173-
157+
local_check = value$preset %in% c(names(x@presets))
158+
174159
if (!local_check) {
175160
available_local = names(x@presets)
176-
stop('"', value$preset, '" is not a valid preset for layer_entity "',
177-
name, '". Choose one of: ', paste(available_local, collapse = ', '),
178-
'. The default is "', x@preset_default, '"')
161+
stop('"', value$preset, '" is not a valid preset for layer_entity "',
162+
name, '". Choose one of: ', paste(available_local, collapse = ', '))
179163
}
180164
}
181-
165+
182166
name = ggplot2::standardise_aes_names(name)
183167
x[[name]] = value
184-
168+
185169
return(x)
186170
}
187171
)
@@ -193,7 +177,6 @@ setMethod(f = 'show',
193177
definition = function(object) {
194178
callNextMethod() # force the default output
195179
cat('layer: ', object@layer, '\n', sep = '')
196-
cat('preset default:', object@preset_default, '\n', sep = '')
197180
cat('available presets:', paste(names(object@presets), collapse = ', '), '\n', sep = '')
198181
}
199182
)
@@ -205,29 +188,25 @@ setGeneric("as_layer", function(obj, ...) standardGeneric("as_layer"))
205188
setMethod(f = 'as_layer',
206189
signature = c('layer_entity'),
207190
definition = function(obj) {
208-
191+
209192
# If the value is already a ggplot2 layer object, return it directly
210193
if (is(obj@value, 'Layer') || is(obj@value, 'theme') || is(obj@value, 'Scale') || is(obj@value, 'Facet')) {
211194
return(obj@value)
212195
}
213-
196+
214197
# If value is NULL, return NULL
215198
if (is.null(obj@value)) {
216199
return(NULL)
217200
}
218-
201+
219202
# get preset
220203
check = any(names(obj@value) == "preset")
221204
if (check) {
222-
# substitute default
223-
if (obj@value$preset == 'default') {
224-
obj@value$preset = obj@preset_default
225-
}
226205
# get preset
227206
P = get_preset(obj, obj@value$preset)
228207
# remove preset label
229208
obj@value$preset = NULL
230-
209+
231210
if (!is.null(P)) {
232211
# If P is already a ggplot2 layer object, return it directly
233212
if (is(P, 'Layer') || is(P, 'theme') || is(P, 'Scale') || is(P, 'Facet')) {
@@ -239,16 +218,16 @@ setMethod(f = 'as_layer',
239218
obj@value = NULL
240219
}
241220
}
242-
221+
243222
# return NULL if specified; this layer not to be plotted
244223
if (is.null(obj@value)) {
245224
return(NULL)
246225
}
247-
226+
248227
if (length(obj@value) > 0) {
249-
228+
250229
L = obj@value
251-
230+
252231
# get mappings
253232
z = which(unlist(lapply(L, is, class2 = 'uneval')))
254233
# join all mappings
@@ -279,19 +258,18 @@ setMethod(f = "value",
279258
setMethod(f = "get_preset",
280259
signature = c('layer_entity','character','missing'),
281260
definition = function(obj, preset_name, slot_name) {
282-
261+
283262
# Check local presets only
284-
check = preset_name %in% c(names(obj@presets), 'default')
263+
check = preset_name %in% c(names(obj@presets))
285264
if (check) {
286265
return(obj@presets[[preset_name]])
287266
}
288-
267+
289268
# If we get here, the preset doesn't exist
290269
available_local = names(obj@presets)
291-
292-
stop('"', preset_name, '" is not a valid preset for layer_entity "',
293-
obj@layer, '". Choose one of: ', paste(available_local, collapse = ', '),
294-
'. The default is "', obj@preset_default, '"')
270+
271+
stop('"', preset_name, '" is not a valid preset for layer_entity "',
272+
obj@layer, '". Choose one of: ', paste(available_local, collapse = ', '))
295273
}
296274
)
297275

@@ -300,4 +278,4 @@ setMethod(f = "get_preset",
300278
# This is a simplified version - in practice, this would properly merge ggplot2 aesthetics
301279
# For now, just return the first argument
302280
return(a)
303-
}
281+
}

R/scatter_chart_class.R

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ new_scatter_chart = function(
3131
points = layer_entity(
3232
layer = 'geom_point',
3333
value = preset('default'),
34-
preset_default = 'default',
3534
presets = list(
3635
none = NULL,
3736
default = list(
@@ -45,7 +44,6 @@ new_scatter_chart = function(
4544
ellipse = layer_entity(
4645
layer = 'stat_ellipse',
4746
value = preset('none'),
48-
preset_default = 'none',
4947
presets = list(
5048
none = NULL,
5149
sample_ellipse = list(
@@ -69,7 +67,6 @@ new_scatter_chart = function(
6967
point_labels = layer_entity(
7068
layer = 'geom_text',
7169
value = preset('none'),
72-
preset_default = 'none',
7370
presets = list(
7471
none = NULL,
7572
all_points = list(
@@ -142,7 +139,6 @@ new_scatter_chart = function(
142139
points = layer_entity(
143140
layer = 'geom_point',
144141
value = preset('default'),
145-
preset_default = 'default',
146142
presets = list(
147143
none = NULL,
148144
default = list(
@@ -157,7 +153,6 @@ new_scatter_chart = function(
157153
ellipse = layer_entity(
158154
layer = 'stat_ellipse',
159155
value = preset('none'),
160-
preset_default = 'none',
161156
presets = list(
162157
none = NULL,
163158
sample_ellipse = list(
@@ -182,7 +177,6 @@ new_scatter_chart = function(
182177
point_labels = layer_entity(
183178
layer = 'geom_text',
184179
value = preset('none'),
185-
preset_default = 'none',
186180
presets = list(
187181
none = NULL,
188182
all_points = list(

man/layer_entity.Rd

Lines changed: 0 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/new_scatter_chart.Rd

Lines changed: 11 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)