From 584c2bc8b40fcc772099b24364120d9271bdee10 Mon Sep 17 00:00:00 2001 From: Ntalumeso Date: Wed, 27 Nov 2024 13:34:57 +0300 Subject: [PATCH 1/9] updating_column_selection --- instat/static/InstatObject/R/data_object_R6.R | 57 ++++++++++++++++++- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/instat/static/InstatObject/R/data_object_R6.R b/instat/static/InstatObject/R/data_object_R6.R index 394c50eff4..61b7d28d6c 100644 --- a/instat/static/InstatObject/R/data_object_R6.R +++ b/instat/static/InstatObject/R/data_object_R6.R @@ -921,8 +921,42 @@ DataSheet$set("public", "cor", function(x_col_names, y_col_name, use = "everythi } ) +DataSheet$set("public", "update_selection", function(new_values, column_selection_name = NULL) { + if(missing(new_values)) stop("new_values is required") + + # Find the column selection to update + if (is.null(column_selection_name)) { + stop("A column selection name must be provided to update the selection.") + } + + column_selection_obj <- private$column_selections[[column_selection_name]] + + if (is.null(column_selection_obj)) { + stop("No column selection found with the name: ", column_selection_name) + } + + # Update conditions in the column selection with new values + updated_conditions <- lapply(column_selection_obj$conditions, function(condition) { + # Check if the parameters exist and replace them with new values + if ("parameters" %in% names(condition)) { + condition$parameters$x <- new_values + } + return(condition) + }) + + # Update the column selection object with the new conditions + column_selection_obj$conditions <- updated_conditions + private$column_selections[[column_selection_name]] <- column_selection_obj + + # Optionally, mark data as changed + self$data_changed <- TRUE + + message("Column selection '", column_selection_name, "' updated successfully with new values.") +}) + + DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", new_col_name = "", label = "", type = "single", .fn, .cols = everything(), new_column_names_df, new_labels_df, ...) { - curr_data <- self$get_data_frame(use_current_filter = FALSE, use_column_selection = FALSE) + curr_data <- self$get_data_frame(use_current_filter = TRUE, use_column_selection = TRUE) # Save the current state to undo_history before making modifications self$save_state_to_undo_history() @@ -954,9 +988,16 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne purrr::map(.x = keys_to_delete, .f = ~self$remove_key(key_name = names(active_keys[.x]))) } } - if(self$column_selection_applied()) self$remove_current_column_selection() + #if(self$column_selection_applied()) self$remove_current_column_selection() # Need to use private$data here because changing names of data field names(private$data)[names(curr_data) == curr_col_name] <- new_col_name + + column_names <- self$get_column_names() + + # Replace NAs in column names (if any) + column_names[is.na(column_names)] <- new_col_name + self$update_selection(column_names, private$.current_column_selection$name) + self$append_to_variables_metadata(new_col_name, name_label, new_col_name) # TODO decide if we need to do these 2 lines self$append_to_changes(list(Renamed_col, curr_col_name, new_col_name)) @@ -975,8 +1016,18 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne curr_col_names <- names(private$data) curr_col_names[cols_changed_index] <- new_col_names if(any(duplicated(curr_col_names))) stop("Cannot rename columns. Column names must be unique.") - if(self$column_selection_applied()) self$remove_current_column_selection() + #if(self$column_selection_applied()) self$remove_current_column_selection() names(private$data)[cols_changed_index] <- new_col_names + + column_names <- self$get_column_names() + + # Replace NAs in column names (if any) + # column_names[is.na(column_names)] <- new_col_names + print(column_names) + print(new_col_names) + print(names(private$data)) + self$update_selection(column_names, private$.current_column_selection$name) + for (i in seq_along(cols_changed_index)) { self$append_to_variables_metadata(new_col_names[i], name_label, new_col_names[i]) } From 30dd7a65e6387f8f10e91aa5ec2538d5302efc33 Mon Sep 17 00:00:00 2001 From: Ntalumeso Date: Wed, 27 Nov 2024 15:01:38 +0300 Subject: [PATCH 2/9] minor bug fixes --- instat/static/InstatObject/R/data_object_R6.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instat/static/InstatObject/R/data_object_R6.R b/instat/static/InstatObject/R/data_object_R6.R index 61b7d28d6c..399c1c3ddd 100644 --- a/instat/static/InstatObject/R/data_object_R6.R +++ b/instat/static/InstatObject/R/data_object_R6.R @@ -956,7 +956,7 @@ DataSheet$set("public", "update_selection", function(new_values, column_selectio DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", new_col_name = "", label = "", type = "single", .fn, .cols = everything(), new_column_names_df, new_labels_df, ...) { - curr_data <- self$get_data_frame(use_current_filter = TRUE, use_column_selection = TRUE) + curr_data <- self$get_data_frame(use_current_filter = TRUE, use_column_selection = FALSE) # Save the current state to undo_history before making modifications self$save_state_to_undo_history() From 9f9c38acaf38068e0fb5618d7eef951bc3a44bce Mon Sep 17 00:00:00 2001 From: Ntalumeso Date: Wed, 27 Nov 2024 21:07:55 +0300 Subject: [PATCH 3/9] improve the rename of multiple column when fileter is applied --- instat/dlgName.vb | 21 ++++++++++++++++- instat/static/InstatObject/R/data_object_R6.R | 23 +++++++++++-------- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/instat/dlgName.vb b/instat/dlgName.vb index 8d04924200..01aba12ffa 100644 --- a/instat/dlgName.vb +++ b/instat/dlgName.vb @@ -33,6 +33,7 @@ Public Class dlgName Private clsStartwithFunction, clsEndswithFunction, clsMatchesFunction, clsContainsFunction As New RFunction Private WithEvents grdCurrentWorkSheet As Worksheet Private dctRowsNewNameChanged As New Dictionary(Of Integer, String) + Private dctRowsCurrentName As New Dictionary(Of Integer, String) Private dctRowsNewLabelChanged As New Dictionary(Of Integer, String) Private dctNameRowsValues As New Dictionary(Of Integer, String) Private dctCaseOptions As New Dictionary(Of String, String) @@ -327,10 +328,14 @@ Public Class dlgName If e.Range.Rows > 1 Then For iRow As Integer = iStartRowIndex To grdCurrentWorkSheet.SelectionRange.EndRow Dim strNewData As String = ValidateRVariable(grdCurrentWorkSheet.GetCellData(row:=iRow, col:=iColIndex), iColIndex) + Dim strOldData As String = grdCurrentWorkSheet.GetCellData(row:=iRow, col:=0) + GetOldNames(iRow, strOldData) RenameColumns(strNewData, iRow, iColIndex) Next Else Dim strNewData As String = ValidateRVariable(grdCurrentWorkSheet.GetCellData(row:=e.Range.Row, col:=iColIndex), iColIndex) + Dim strOldData As String = grdCurrentWorkSheet.GetCellData(row:=e.Range.Row, col:=0) + GetOldNames(e.Range.Row, strOldData) RenameColumns(strNewData, iStartRowIndex, iColIndex) End If ValidateNamesFromDictionary(iColIndex) @@ -380,10 +385,22 @@ Public Class dlgName Private Sub grdCurrSheet_AfterCellEdit(sender As Object, e As CellAfterEditEventArgs) Handles grdCurrentWorkSheet.AfterCellEdit Dim iCol As Integer = e.Cell.Column Dim strNewData As String = ValidateRVariable(e.NewData, iCol) + + Dim strFirstColumnData As String = grdCurrentWorkSheet(e.Cell.Row, 0).ToString() + + GetOldNames(e.Cell.Row, strFirstColumnData) RenameColumns(strNewData, e.Cell.Row, iCol) ValidateNamesFromDictionary(iCol) End Sub + Private Sub GetOldNames(iRow As Integer, strOldName As String) + If Not dctRowsCurrentName.ContainsKey(iRow) Then + dctRowsCurrentName.Add(iRow, strOldName) + Else + dctRowsCurrentName(iRow) = strOldName + End If + End Sub + Private Sub GetVariables(strNewData As String, iRowIndex As Integer, iColIndex As Integer) If rdoMultiple.Checked Then If iColIndex = 1 Then @@ -391,7 +408,7 @@ Public Class dlgName AddChangedNewNameRows(iRowIndex, strNewData) clsNewColNameDataframeFunction.AddParameter("cols", GetValuesAsVector(dctRowsNewNameChanged), iPosition:=0) - clsNewColNameDataframeFunction.AddParameter("index", "c(" & String.Join(",", dctRowsNewNameChanged.Keys.ToArray) & ")", iPosition:=1) + clsNewColNameDataframeFunction.AddParameter("old_names", GetValuesAsVector(dctRowsCurrentName), iPosition:=1) clsDefaultRFunction.AddParameter("new_column_names_df", clsRFunctionParameter:=clsNewColNameDataframeFunction, iPosition:=8) Else clsNewColNameDataframeFunction.RemoveParameterByName("cols") @@ -652,6 +669,8 @@ Public Class dlgName Dim parsedValue As Boolean Dim strNewData As String = ValidateRVariable(e.Text, iCol) If Not strNewData.ToLower.Equals("t") AndAlso Not strNewData.ToLower.Equals("f") AndAlso Not IsNumeric(strNewData) AndAlso Not Boolean.TryParse(strNewData, parsedValue) Then + Dim strFirstColumnData As String = grdCurrentWorkSheet(e.Cell.Row, 0).ToString() + GetOldNames(e.Cell.Row, strFirstColumnData) RenameColumns(strNewData, e.Cell.Row, iCol) ValidateNamesFromDictionary(iCol) End If diff --git a/instat/static/InstatObject/R/data_object_R6.R b/instat/static/InstatObject/R/data_object_R6.R index 399c1c3ddd..70315c2580 100644 --- a/instat/static/InstatObject/R/data_object_R6.R +++ b/instat/static/InstatObject/R/data_object_R6.R @@ -956,7 +956,7 @@ DataSheet$set("public", "update_selection", function(new_values, column_selectio DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", new_col_name = "", label = "", type = "single", .fn, .cols = everything(), new_column_names_df, new_labels_df, ...) { - curr_data <- self$get_data_frame(use_current_filter = TRUE, use_column_selection = FALSE) + curr_data <- self$get_data_frame(use_current_filter = FALSE, use_column_selection = FALSE) # Save the current state to undo_history before making modifications self$save_state_to_undo_history() @@ -994,8 +994,12 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne column_names <- self$get_column_names() - # Replace NAs in column names (if any) - column_names[is.na(column_names)] <- new_col_name + if (any(is.na(column_names))) { + column_names[is.na(column_names)] <- new_col_name + } else { + column_names <- new_col_name + } + self$update_selection(column_names, private$.current_column_selection$name) self$append_to_variables_metadata(new_col_name, name_label, new_col_name) @@ -1012,7 +1016,7 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne } else if (type == "multiple") { if (!missing(new_column_names_df)) { new_col_names <- new_column_names_df[, 1] - cols_changed_index <- new_column_names_df[, 2] + cols_changed_index <- which(names(private$data) %in% new_column_names_df[, 2]) curr_col_names <- names(private$data) curr_col_names[cols_changed_index] <- new_col_names if(any(duplicated(curr_col_names))) stop("Cannot rename columns. Column names must be unique.") @@ -1021,11 +1025,12 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne column_names <- self$get_column_names() - # Replace NAs in column names (if any) - # column_names[is.na(column_names)] <- new_col_names - print(column_names) - print(new_col_names) - print(names(private$data)) + if (any(is.na(column_names))) { + column_names[is.na(column_names)] <- new_col_names + } else { + column_names <- new_col_names + } + self$update_selection(column_names, private$.current_column_selection$name) for (i in seq_along(cols_changed_index)) { From 35c653ae011df9315ae75424099f93fa31513cb0 Mon Sep 17 00:00:00 2001 From: Ntalumeso Date: Wed, 27 Nov 2024 21:26:41 +0300 Subject: [PATCH 4/9] fixed the renaming with when selection applied --- instat/static/InstatObject/R/data_object_R6.R | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/instat/static/InstatObject/R/data_object_R6.R b/instat/static/InstatObject/R/data_object_R6.R index 70315c2580..bae307f3d8 100644 --- a/instat/static/InstatObject/R/data_object_R6.R +++ b/instat/static/InstatObject/R/data_object_R6.R @@ -1051,19 +1051,31 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne } else if (type == "rename_with") { if (missing(.fn)) stop(.fn, "is missing with no default.") curr_col_names <- names(curr_data) + column_names <- self$get_column_names() private$data <- curr_data |> dplyr::rename_with( .fn = .fn, .cols = {{ .cols }}, ... ) - if(self$column_selection_applied()) self$remove_current_column_selection() new_col_names <- names(private$data) if (!all(new_col_names %in% curr_col_names)) { new_col_names <- new_col_names[!(new_col_names %in% curr_col_names)] + + print(new_col_names) for (i in seq_along(new_col_names)) { self$append_to_variables_metadata(new_col_names[i], name_label, new_col_names[i]) } + + column_names <- self$get_column_names() + if (any(is.na(column_names))) { + column_names[is.na(column_names)] <- new_col_names + } else { + column_names <- new_col_names + } + + self$update_selection(column_names, private$.current_column_selection$name) + self$data_changed <- TRUE self$variables_metadata_changed <- TRUE } From 933921b42e493d85118a2a06edafd7c402d8c0af Mon Sep 17 00:00:00 2001 From: Ntalumeso Date: Thu, 28 Nov 2024 10:08:55 +0300 Subject: [PATCH 5/9] minor addition --- instat/dlgName.vb | 1 + 1 file changed, 1 insertion(+) diff --git a/instat/dlgName.vb b/instat/dlgName.vb index 7b69b5cafb..589d415d87 100644 --- a/instat/dlgName.vb +++ b/instat/dlgName.vb @@ -176,6 +176,7 @@ Public Class dlgName ucrSelectVariables.Reset() dctRowsNewNameChanged.Clear() dctRowsNewLabelChanged.Clear() + dctRowsCurrentName.Clear() bCurrentCell = False clsNewColNameDataframeFunction.SetRCommand("data.frame") From ee6dc92d7d44a6b83b02c9de2ba538b16791d4a5 Mon Sep 17 00:00:00 2001 From: Ntalumeso Date: Thu, 28 Nov 2024 10:32:01 +0300 Subject: [PATCH 6/9] retaining the status rename_with options after re-opening --- instat/dlgName.vb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/instat/dlgName.vb b/instat/dlgName.vb index 589d415d87..0f7ad48b76 100644 --- a/instat/dlgName.vb +++ b/instat/dlgName.vb @@ -95,11 +95,9 @@ Public Class dlgName ucrPnlCase.AddRadioButton(rdoAbbreviate, "abbreviate") ucrPnlCase.AddRadioButton(rdoReplace, "stringr::str_replace") - ucrPnlSelectData.SetParameter(New RParameter("data", 0)) - ucrPnlSelectData.AddRadioButton(rdoWholeDataFrame) - ucrPnlSelectData.AddRadioButton(rdoSelectedColumn) - ucrPnlSelectData.AddParameterValuesCondition(rdoWholeDataFrame, "checked", "whole") - ucrPnlSelectData.AddParameterValuesCondition(rdoSelectedColumn, "checked", "selected") + ucrPnlSelectData.SetParameter(New RParameter("checked", 1)) + ucrPnlSelectData.AddRadioButton(rdoWholeDataFrame, "whole") + ucrPnlSelectData.AddRadioButton(rdoSelectedColumn, "selected") ucrReceiverColumns.SetParameter(New RParameter(".cols", 6)) ucrReceiverColumns.Selector = ucrSelectVariables @@ -697,6 +695,7 @@ Public Class dlgName Case "Contains" clsDefaultRFunction.AddParameter(".cols", clsRFunctionParameter:=clsContainsFunction, iPosition:=3) End Select + Else clsDefaultRFunction.RemoveParameterByName("pattern") clsDefaultRFunction.RemoveParameterByName("replacement") From ae37c80ba2c6e1d8edf720b65f5334423aed4508 Mon Sep 17 00:00:00 2001 From: Ntalumeso Date: Mon, 2 Dec 2024 21:37:47 +0300 Subject: [PATCH 7/9] fixed developer error --- instat/dlgName.vb | 10 +++++++--- instat/dlgSelect.vb | 6 ++++++ instat/frmMain.vb | 4 ++++ instat/ucrDataView.vb | 4 ++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/instat/dlgName.vb b/instat/dlgName.vb index 0f7ad48b76..7c507648b7 100644 --- a/instat/dlgName.vb +++ b/instat/dlgName.vb @@ -95,9 +95,11 @@ Public Class dlgName ucrPnlCase.AddRadioButton(rdoAbbreviate, "abbreviate") ucrPnlCase.AddRadioButton(rdoReplace, "stringr::str_replace") - ucrPnlSelectData.SetParameter(New RParameter("checked", 1)) - ucrPnlSelectData.AddRadioButton(rdoWholeDataFrame, "whole") - ucrPnlSelectData.AddRadioButton(rdoSelectedColumn, "selected") + + ucrPnlSelectData.AddRadioButton(rdoWholeDataFrame) + ucrPnlSelectData.AddRadioButton(rdoSelectedColumn) + ucrPnlSelectData.AddParameterValuesCondition(rdoWholeDataFrame, "checked", "whole") + ucrPnlSelectData.AddParameterValuesCondition(rdoSelectedColumn, "checked", "selected") ucrReceiverColumns.SetParameter(New RParameter(".cols", 6)) ucrReceiverColumns.Selector = ucrSelectVariables @@ -592,7 +594,9 @@ Public Class dlgName rdoReplace.Visible = rdoWholeDataFrame.Checked If rdoWholeDataFrame.Checked Then ucrReceiverColumns.Visible = False + clsDummyFunction.AddParameter("checked", "whole", iPosition:=1) Else + clsDummyFunction.AddParameter("checked", "selected", iPosition:=1) ucrReceiverColumns.SetMeAsReceiver() If rdoReplace.Checked Then rdoMakeCleanNames.Checked = True diff --git a/instat/dlgSelect.vb b/instat/dlgSelect.vb index 2bc3630c75..9d9d2acc09 100644 --- a/instat/dlgSelect.vb +++ b/instat/dlgSelect.vb @@ -137,6 +137,12 @@ Public Class dlgSelect End Sub Private Sub cmdDefineNewSelect_Click(sender As Object, e As EventArgs) Handles cmdDefineNewSelect.Click + If frmMain.IsColumnSelectionApplied Then + Dim clsRemoveCurrentSelection As New RFunction + clsRemoveCurrentSelection.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$remove_current_column_selection") + clsRemoveCurrentSelection.AddParameter("data_name", Chr(34) & ucrSelectorForSelectColumns.strCurrentDataFrame & Chr(34)) + frmMain.clsRLink.RunScript(clsRemoveCurrentSelection.ToScript, strComment:="Remove current selection") + End If dlgSelectColumns.SetDefaultDataFrame(ucrSelectorForSelectColumns.ucrAvailableDataFrames.strCurrDataFrame) dlgSelectColumns.ShowDialog() ucrSelectorForSelectColumns.LoadList() diff --git a/instat/frmMain.vb b/instat/frmMain.vb index d5c70d0953..ae287e33ef 100644 --- a/instat/frmMain.vb +++ b/instat/frmMain.vb @@ -1724,6 +1724,10 @@ Public Class frmMain ucrDataViewer.UseColumnSelectionInDataView(bUseColumnSelecion) End Sub + Public Function IsColumnSelectionApplied() As Boolean + Return ucrDataViewer.IsColumnSelectionApplied + End Function + Public Sub SetCurrentDataFrame(strDataName As String) ucrDataViewer.SetCurrentDataFrame(strDataName) ucrColumnMeta.SetCurrentDataFrame(strDataName) diff --git a/instat/ucrDataView.vb b/instat/ucrDataView.vb index 109af059b4..53eb096ed7 100644 --- a/instat/ucrDataView.vb +++ b/instat/ucrDataView.vb @@ -466,6 +466,10 @@ Public Class ucrDataView End If End Sub + Public Function IsColumnSelectionApplied() As Boolean + Return GetCurrentDataFrameFocus().clsFilterOrColumnSelection.bColumnSelectionApplied + End Function + Private Function GetSelectedColumns() As List(Of clsColumnHeaderDisplay) Return _grid.GetSelectedColumns() End Function From eb95a5c7e65a39d74546507495c160563d0a3fc5 Mon Sep 17 00:00:00 2001 From: Ntalumeso Date: Tue, 3 Dec 2024 07:10:20 +0300 Subject: [PATCH 8/9] minor change in the rename function --- instat/static/InstatObject/R/data_object_R6.R | 4 ---- 1 file changed, 4 deletions(-) diff --git a/instat/static/InstatObject/R/data_object_R6.R b/instat/static/InstatObject/R/data_object_R6.R index bae307f3d8..efe70399d4 100644 --- a/instat/static/InstatObject/R/data_object_R6.R +++ b/instat/static/InstatObject/R/data_object_R6.R @@ -988,7 +988,6 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne purrr::map(.x = keys_to_delete, .f = ~self$remove_key(key_name = names(active_keys[.x]))) } } - #if(self$column_selection_applied()) self$remove_current_column_selection() # Need to use private$data here because changing names of data field names(private$data)[names(curr_data) == curr_col_name] <- new_col_name @@ -1020,7 +1019,6 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne curr_col_names <- names(private$data) curr_col_names[cols_changed_index] <- new_col_names if(any(duplicated(curr_col_names))) stop("Cannot rename columns. Column names must be unique.") - #if(self$column_selection_applied()) self$remove_current_column_selection() names(private$data)[cols_changed_index] <- new_col_names column_names <- self$get_column_names() @@ -1061,8 +1059,6 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne new_col_names <- names(private$data) if (!all(new_col_names %in% curr_col_names)) { new_col_names <- new_col_names[!(new_col_names %in% curr_col_names)] - - print(new_col_names) for (i in seq_along(new_col_names)) { self$append_to_variables_metadata(new_col_names[i], name_label, new_col_names[i]) } From 285f04588184c66a814fba08b7e9937d990c893a Mon Sep 17 00:00:00 2001 From: Ntalumeso Date: Wed, 22 Jan 2025 09:57:31 +0300 Subject: [PATCH 9/9] resolving comments --- instat/static/InstatObject/R/data_object_R6.R | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/instat/static/InstatObject/R/data_object_R6.R b/instat/static/InstatObject/R/data_object_R6.R index 8287333e2e..4183798f63 100644 --- a/instat/static/InstatObject/R/data_object_R6.R +++ b/instat/static/InstatObject/R/data_object_R6.R @@ -922,12 +922,8 @@ DataSheet$set("public", "cor", function(x_col_names, y_col_name, use = "everythi ) DataSheet$set("public", "update_selection", function(new_values, column_selection_name = NULL) { - if(missing(new_values)) stop("new_values is required") - - # Find the column selection to update - if (is.null(column_selection_name)) { - stop("A column selection name must be provided to update the selection.") - } + if (missing(new_values)) stop("new_values is required") + if (missing(column_selection_name)) stop("column_selection_name is required") column_selection_obj <- private$column_selections[[column_selection_name]] @@ -993,7 +989,7 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne column_names <- self$get_column_names() - if (any(is.na(column_names))) { + if (anyNA(column_names)) { column_names[is.na(column_names)] <- new_col_name } else { column_names <- new_col_name @@ -1028,7 +1024,7 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne column_names <- self$get_column_names() - if (any(is.na(column_names))) { + if (anyNA(column_names)) { column_names[is.na(column_names)] <- new_col_names } else { column_names <- new_col_names @@ -1036,7 +1032,6 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne self$update_selection(column_names, private$.current_column_selection$name) - if(self$column_selection_applied()) self$remove_current_column_selection() if(any(c("sfc", "sfc_MULTIPOLYGON") %in% class(private$dataprivate$data)[cols_changed_index])){ # Update the geometry column reference sf::st_geometry(private$data) <- new_col_names @@ -1068,7 +1063,6 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne .cols = {{ .cols }}, ... ) - if(self$column_selection_applied()) self$remove_current_column_selection() new_col_names <- names(private$data) if (!all(new_col_names %in% curr_col_names)) { new_col_names <- new_col_names[!(new_col_names %in% curr_col_names)] @@ -1077,7 +1071,7 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne } column_names <- self$get_column_names() - if (any(is.na(column_names))) { + if (anyNA(column_names)) { column_names[is.na(column_names)] <- new_col_names } else { column_names <- new_col_names