From dfc8e44f1e2acf1ce9e8dc6c3c5b9b0fba36d470 Mon Sep 17 00:00:00 2001 From: shadrack kibet Date: Sun, 4 Apr 2021 12:16:03 +0300 Subject: [PATCH 01/40] bug fix: using correct column for checking the length of dates --- instat/static/InstatObject/R/data_object_R6.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instat/static/InstatObject/R/data_object_R6.R b/instat/static/InstatObject/R/data_object_R6.R index 46acf29d161..31f7725e8e5 100644 --- a/instat/static/InstatObject/R/data_object_R6.R +++ b/instat/static/InstatObject/R/data_object_R6.R @@ -2765,8 +2765,8 @@ DataSheet$set("public","infill_missing_dates", function(date_name, factors, star full_dates_list <- list() for(j in 1:nrow(date_ranges)) { full_dates <- seq(date_ranges$min_date[j], date_ranges$max_date[j], by = "day") - if(length(full_dates) > date_lengths[[2]][j]) { - cat(paste(unlist(date_ranges[1:length(factors)][j, ]), collapse = "-"), ": Added", (length(full_dates) - date_lengths[[2]][j]), "rows to extend data and fill date gaps", "\n") + if(length(full_dates) > date_lengths[,"count"][j,]) { + cat(paste(unlist(date_ranges[1:length(factors)][j, ]), collapse = "-"), ": Added", (length(full_dates) - unlist(date_lengths[,"count"][j,])), "rows to extend data and fill date gaps", "\n") merge_required <- TRUE } full_dates <- data.frame(full_dates) From 953ee90fb44de467cb26353dcb34a46833933e14 Mon Sep 17 00:00:00 2001 From: shadrack kibet Date: Sun, 4 Apr 2021 12:34:40 +0300 Subject: [PATCH 02/40] removed redundant code --- instat/dlgInfill.vb | 1 - 1 file changed, 1 deletion(-) diff --git a/instat/dlgInfill.vb b/instat/dlgInfill.vb index ff0d51c0f4a..129669dd010 100644 --- a/instat/dlgInfill.vb +++ b/instat/dlgInfill.vb @@ -50,7 +50,6 @@ Public Class dlgInfill ucrReceiverFactors.strSelectorHeading = "Factors" ucrReceiverFactors.SetParameter(New RParameter("factors", 5)) ucrReceiverFactors.SetParameterIsString() - ucrReceiverFactors.strSelectorHeading = "Factors" 'Set data frame parameter ucrInfillSelector.SetParameter(New RParameter("data_name", 0)) From afde1eb1221df7b1c1fd01c81069419e415667ed Mon Sep 17 00:00:00 2001 From: shadrack kibet Date: Tue, 6 Apr 2021 10:23:07 +0300 Subject: [PATCH 03/40] added check for factor levels --- instat/static/InstatObject/R/data_object_R6.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/instat/static/InstatObject/R/data_object_R6.R b/instat/static/InstatObject/R/data_object_R6.R index 31f7725e8e5..90d3aedb4c0 100644 --- a/instat/static/InstatObject/R/data_object_R6.R +++ b/instat/static/InstatObject/R/data_object_R6.R @@ -2739,10 +2739,13 @@ DataSheet$set("public","infill_missing_dates", function(date_name, factors, star else { merge_required <- FALSE col_names_exp <- c() + factor_levels <- c() for(i in seq_along(factors)) { col_name <- factors[i] col_names_exp[[i]] <- lazyeval::interp(~ var, var = as.name(col_name)) + factor_levels[i] <- dplyr::n_distinct(self$get_columns_from_data(col_name, use_current_filter = FALSE)) } + if(!dplyr::n_distinct(factor_levels)==1) stop("All factors must have the same number of levels") grouped_data <- self$get_data_frame(use_current_filter = FALSE) %>% dplyr::group_by_(.dots = col_names_exp) date_ranges <- grouped_data %>% dplyr::summarise_(.dots = setNames(list(lazyeval::interp(~ min(var), var = as.name(date_name)), lazyeval::interp(~ max(var), var = as.name(date_name))), c("min_date", "max_date"))) date_lengths <- grouped_data %>% dplyr::summarise(count = n()) From 8a00b103ec2533cec6546643d1a4c9e720111af9 Mon Sep 17 00:00:00 2001 From: patowhiz Date: Thu, 27 May 2021 14:26:15 +0300 Subject: [PATCH 04/40] fixed data frames bug --- instat/dlgImportDataset.vb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instat/dlgImportDataset.vb b/instat/dlgImportDataset.vb index cf6af148caa..62e49b7d943 100644 --- a/instat/dlgImportDataset.vb +++ b/instat/dlgImportDataset.vb @@ -714,8 +714,8 @@ Public Class dlgImportDataset strFileType = "" End If If strFileType <> "" AndAlso strFileType <> "RDS" Then - If (strFileType = "XLSX" OrElse strFileType = "XLS") Then - ucrSaveFile.SetAssignToBooleans(bTempDataFrameList:=True) + If strFileType = "XLSX" OrElse strFileType = "XLS" Then + ucrSaveFile.SetAssignToBooleans(bTempDataFrameList:=dctSelectedExcelSheets.Count > 1) Select Case clbSheets.CheckedItems.Count Case Is > 1 ucrSaveFile.Hide() From 8e96b7cb1a75210e5b22bdb53fa5ea4278c955ce Mon Sep 17 00:00:00 2001 From: patowhiz Date: Fri, 4 Jun 2021 14:08:57 +0300 Subject: [PATCH 05/40] added changes that allow importing multiple text files --- instat/dlgImportDataset.vb | 103 ++++++++++++++++++++++++++++--------- 1 file changed, 80 insertions(+), 23 deletions(-) diff --git a/instat/dlgImportDataset.vb b/instat/dlgImportDataset.vb index 62e49b7d943..14831c0ac1f 100644 --- a/instat/dlgImportDataset.vb +++ b/instat/dlgImportDataset.vb @@ -16,7 +16,7 @@ Public Class dlgImportDataset Private clsFileList As RFunction ' Functions for multi Excel sheet impoty Private clsImportExcelMulti As RFunction - Private clsImportMultipleFiles, clsGetFilesList As RFunction + Private clsGetFilesList, clsImportMultipleFiles, clsImportMultipleTextFiles As RFunction 'functions for importing multiple files Private bFirstLoad As Boolean Public bFromLibrary As Boolean @@ -337,8 +337,9 @@ Public Class dlgImportDataset clsImportExcelMulti = New RFunction clsFileList = New RFunction - clsImportMultipleFiles = New RFunction clsGetFilesList = New RFunction + clsImportMultipleFiles = New RFunction + clsImportMultipleTextFiles = New RFunction clsImportFixedWidthText.SetPackageName("readr") clsImportFixedWidthText.SetRCommand("read_table") @@ -383,17 +384,34 @@ Public Class dlgImportDataset clsImportRDS.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$import_RDS") 'commands for multiple files - clsImportMultipleFiles.SetPackageName("rio") - clsImportMultipleFiles.SetRCommand("import_list") - clsGetFilesList.SetRCommand("list.files") 'clsGetFilesList.AddParameter("pattern", Chr(34) & "\\.csv$" & Chr(34), iPosition:=1) clsGetFilesList.AddParameter("full.names", "TRUE", iPosition:=2) clsGetFilesList.AddParameter("ignore.case", "TRUE", iPosition:=3) + + clsImportMultipleFiles.SetPackageName("rio") + clsImportMultipleFiles.SetRCommand("import_list") clsImportMultipleFiles.AddParameter("file", clsRFunctionParameter:=clsGetFilesList, iPosition:=0) clsImportMultipleFiles.AddParameter("stringsAsFactors", "TRUE") + Dim clsSetNames As New RFunction + Dim clsFileNames As New RFunction + + clsFileNames.SetPackageName("tools") + clsFileNames.SetRCommand("file_path_sans_ext") + clsFileNames.AddParameter("x", clsRFunctionParameter:=clsGetFilesList, iPosition:=0) + + clsSetNames.SetPackageName("stats") + clsSetNames.SetRCommand("setNames") + clsSetNames.AddParameter("object", clsRFunctionParameter:=clsGetFilesList, iPosition:=0) + clsSetNames.AddParameter("nm", clsRFunctionParameter:=clsFileNames, iPosition:=1) + + 'clsImportMultipleTextFiles.SetPackageName("base") + clsImportMultipleTextFiles.SetRCommand("lapply") + clsImportMultipleTextFiles.AddParameter("X", clsRFunctionParameter:=clsSetNames, iPosition:=0) + clsImportMultipleTextFiles.AddParameter("FUN", strParameterValue:="readr::read_table", iPosition:=1) + ucrBase.clsRsyntax.SetBaseRFunction(clsImport) strFilePathSystem = "" @@ -519,16 +537,21 @@ Public Class dlgImportDataset ucrSaveFile.AddAdditionalRCode(clsImportExcel, iAdditionalPairNo:=3) ucrSaveFile.AddAdditionalRCode(clsImportExcelMulti, iAdditionalPairNo:=4) ucrSaveFile.AddAdditionalRCode(clsImportMultipleFiles, iAdditionalPairNo:=5) + ucrSaveFile.AddAdditionalRCode(clsImportMultipleTextFiles, iAdditionalPairNo:=6) ucrSaveFile.SetRCode(clsImport, bReset) 'Used by both text and csv functions ucrPanelFixedWidthText.SetRCode(ucrBase.clsRsyntax.clsBaseFunction, bReset) - 'TEXT CONTROLS + 'TEXT CONTROLS ucrChkColumnNamesText.SetRCode(clsImportFixedWidthText, bReset) ucrNudRowsToSkipText.SetRCode(clsImportFixedWidthText, bReset) ucrNudMaxRowsText.SetRCode(clsImportFixedWidthText, bReset) ucrChkMaxRowsText.SetRCode(clsImportFixedWidthText, bReset) + ucrChkColumnNamesText.AddAdditionalCodeParameterPair(clsImportMultipleTextFiles, New RParameter("col_names"), iAdditionalPairNo:=1) + ucrNudRowsToSkipText.AddAdditionalCodeParameterPair(clsImportMultipleTextFiles, New RParameter("skip"), iAdditionalPairNo:=1) + ucrNudMaxRowsText.AddAdditionalCodeParameterPair(clsImportMultipleTextFiles, New RParameter("n_max"), iAdditionalPairNo:=1) + 'CSV CONTROLS ucrInputSeparatorCSV.SetRCode(clsImportCSV, bReset) ucrInputHeadersCSV.SetRCode(clsImportCSV, bReset) @@ -651,19 +674,36 @@ Public Class dlgImportDataset ucrSaveFile.SetAssignToBooleans(bTempDataFrameList:=True) ucrSaveFile.Hide() clsGetFilesList.AddParameter("pattern", Chr(34) & "\\" & strFileExtension & "$" & Chr(34), iPosition:=1) - If strFileExtension = ".dly" Then - clsImportMultipleFiles.AddParameter("format", Chr(34) & "csv" & Chr(34), iPosition:=1) - ElseIf strFileExtension = ".dat" Then - clsImportMultipleFiles.AddParameter("format", Chr(34) & "txt" & Chr(34), iPosition:=1) - Else - clsImportMultipleFiles.AddParameter("format", Chr(34) & strFileExtension.Substring(1) & Chr(34), iPosition:=1) - End If - ucrBase.clsRsyntax.SetBaseRFunction(clsImportMultipleFiles) - If strFileExtension = ".txt" OrElse strFileExtension = ".csv" OrElse strFileExtension = ".dly" OrElse strFileExtension = ".dat" Then - grpCSV.Text = "Import Options" - grpCSV.Location = New System.Drawing.Point(9, 50) 'set the location of the groupbox to adjust gaps in the form UI - grpCSV.Show() + + If {".txt", ".csv", ".dly", ".dat"}.Contains(strFileExtension) Then + If strFileExtension = ".dly" Then + clsImportMultipleFiles.AddParameter("format", Chr(34) & "csv" & Chr(34), iPosition:=1) + ElseIf strFileExtension = ".dat" Then + clsImportMultipleFiles.AddParameter("format", Chr(34) & "txt" & Chr(34), iPosition:=1) + Else + clsImportMultipleFiles.AddParameter("format", Chr(34) & strFileExtension.Substring(1) & Chr(34), iPosition:=1) + End If + + If strFileExtension = ".txt" Then + grpCSV.Text = "Import Text Options" + grpCSV.Location = New System.Drawing.Point(9, 99) 'set the location of the groupbox to adjust gaps in the form UI + ucrPanelFixedWidthText.Show() + ElseIf strFileExtension = ".csv" OrElse strFileExtension = ".dly" OrElse strFileExtension = ".dat" Then + grpCSV.Text = "Import Options" + grpCSV.Location = New System.Drawing.Point(9, 50) 'set the location of the groupbox to adjust gaps in the form UI + grpCSV.Show() + End If + + If strFileExtension = ".txt" AndAlso Not rdoSeparatortext.Checked Then + grpText.Show() + ucrBase.clsRsyntax.SetBaseRFunction(clsImportMultipleTextFiles) + Else + grpCSV.Show() + ucrBase.clsRsyntax.SetBaseRFunction(clsImportMultipleFiles) + End If + End If + Else 'don't enable multiple files import for the following files only; .rds, .xlsx, .xls ucrChkMultipleFiles.SetVisible(Not (strFileExtension = ".rds" OrElse strFileExtension = ".xlsx" OrElse strFileExtension = ".xls")) @@ -683,12 +723,16 @@ Public Class dlgImportDataset 'This only works if .DAT file is text based, this seems to be common usage 'check https://github.com/leeper/rio/issues/155 clsImportCSV.AddParameter("format", Chr(34) & "txt" & Chr(34), iPosition:=1) - 'by default the textfiles will be imported using the function we use for csv - ucrBase.clsRsyntax.SetBaseRFunction(clsImportCSV) ucrPanelFixedWidthText.Show() grpCSV.Text = "Import Text Options" grpCSV.Location = New System.Drawing.Point(9, 99) 'set the location of the groupbox to adjust gaps in the form UI - grpCSV.Show() + If rdoSeparatortext.Checked Then + grpCSV.Show() + ucrBase.clsRsyntax.SetBaseRFunction(clsImportCSV) + Else + grpText.Show() + ucrBase.clsRsyntax.SetBaseRFunction(clsImportFixedWidthText) + End If ElseIf strFileExtension = ".csv" OrElse strFileExtension = ".dly" Then strFileType = "CSV" 'add format. forces rio to treat dly files as csv @@ -1001,6 +1045,7 @@ Public Class dlgImportDataset clsImportMultipleFiles.AddParameter("na.strings", GetMissingValueRString(ucrInputMissingValueStringCSV.GetText()), iPosition:=2) Else clsImportFixedWidthText.AddParameter("na", GetMissingValueRString(ucrInputMissingValueStringText.GetText()), iPosition:=2) + clsImportMultipleTextFiles.AddParameter("na", GetMissingValueRString(ucrInputMissingValueStringText.GetText()), iPosition:=2) End If End If RefreshFrameView() @@ -1013,14 +1058,26 @@ Public Class dlgImportDataset If rdoFixedWidthText.Checked OrElse rdoFixedWidthWhiteSpacesText.Checked Then If rdoFixedWidthText.Checked Then clsImportFixedWidthText.SetRCommand("read_table") + clsImportMultipleTextFiles.AddParameter("FUN", strParameterValue:="readr::read_table", iPosition:=1) Else clsImportFixedWidthText.SetRCommand("read_table2") + clsImportMultipleTextFiles.AddParameter("FUN", strParameterValue:="readr::read_table2", iPosition:=1) End If - ucrBase.clsRsyntax.SetBaseRFunction(clsImportFixedWidthText) + If ucrChkMultipleFiles.Checked Then + ucrBase.clsRsyntax.SetBaseRFunction(clsImportMultipleTextFiles) + Else + ucrBase.clsRsyntax.SetBaseRFunction(clsImportFixedWidthText) + End If + grpText.Visible = True RefreshFilePreview("TXT") ElseIf rdoSeparatortext.Checked Then - ucrBase.clsRsyntax.SetBaseRFunction(clsImportCSV) + If ucrChkMultipleFiles.Checked Then + ucrBase.clsRsyntax.SetBaseRFunction(clsImportMultipleFiles) + Else + ucrBase.clsRsyntax.SetBaseRFunction(clsImportCSV) + End If + grpCSV.Visible = True RefreshFilePreview("CSV") End If From de012d5bcfc5539a114c775c15160a93058c1d59 Mon Sep 17 00:00:00 2001 From: patowhiz Date: Sat, 5 Jun 2021 14:41:57 +0300 Subject: [PATCH 06/40] fixed the file names bug --- instat/dlgImportDataset.vb | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/instat/dlgImportDataset.vb b/instat/dlgImportDataset.vb index 14831c0ac1f..d6da5a51cfc 100644 --- a/instat/dlgImportDataset.vb +++ b/instat/dlgImportDataset.vb @@ -16,7 +16,7 @@ Public Class dlgImportDataset Private clsFileList As RFunction ' Functions for multi Excel sheet impoty Private clsImportExcelMulti As RFunction - Private clsGetFilesList, clsImportMultipleFiles, clsImportMultipleTextFiles As RFunction + Private clsGetFilesList, clsImportMultipleFiles, clsImportMultipleTextFiles, clsFileNamesWithExt As RFunction 'functions for importing multiple files Private bFirstLoad As Boolean Public bFromLibrary As Boolean @@ -298,10 +298,15 @@ Public Class dlgImportDataset ucrPanelFixedWidthText.AddRadioButton(rdoSeparatortext) ucrPanelFixedWidthText.AddRadioButton(rdoFixedWidthText) ucrPanelFixedWidthText.AddRadioButton(rdoFixedWidthWhiteSpacesText) - ucrPanelFixedWidthText.AddFunctionNamesCondition(rdoSeparatortext, {"read_table", "read_table2"}, bNewIsPositive:=False) - ucrPanelFixedWidthText.AddFunctionNamesCondition(rdoFixedWidthText, "read_table", bNewIsPositive:=True) + ucrPanelFixedWidthText.AddFunctionNamesCondition(rdoSeparatortext, {"read_table", "read_table2", "lapply"}, bNewIsPositive:=False) + ucrPanelFixedWidthText.AddFunctionNamesCondition(rdoFixedWidthText, {"read_table", "lapply"}, bNewIsPositive:=True) ucrPanelFixedWidthText.AddFunctionNamesCondition(rdoFixedWidthWhiteSpacesText, "read_table2", bNewIsPositive:=True) + 'ucrPanelFixedWidthText.AddParameterValueFunctionNamesCondition(rdoFixedWidthText, "FUN", "read_table", bNewIsPositive:=True) + 'ucrPanelFixedWidthText.AddParameterValueFunctionNamesCondition(rdoFixedWidthText, "FUN", "read_table2", bNewIsPositive:=False) + 'ucrPanelFixedWidthText.AddParameterValueFunctionNamesCondition(rdoFixedWidthWhiteSpacesText, "FUN", "read_table2", bNewIsPositive:=True) + 'ucrPanelFixedWidthText.AddParameterValueFunctionNamesCondition(rdoFixedWidthWhiteSpacesText, "FUN", "read_table", bNewIsPositive:=False) + ucrChkColumnNamesText.SetText("First Row is Column Headers") ucrChkColumnNamesText.SetParameter(New RParameter("col_names"), bNewChangeParameterValue:=True, bNewAddRemoveParameter:=True, strNewValueIfChecked:="TRUE", strNewValueIfUnchecked:="FALSE") ucrChkColumnNamesText.SetRDefault("TRUE") @@ -322,6 +327,9 @@ Public Class dlgImportDataset End Sub Private Sub SetDefaults() + Dim clsSetNames As New RFunction + Dim clsFileNamesWithoutExt As New RFunction + clsImportFixedWidthText = New RFunction clsImportCSV = New RFunction clsImportRDS = New RFunction @@ -340,6 +348,7 @@ Public Class dlgImportDataset clsGetFilesList = New RFunction clsImportMultipleFiles = New RFunction clsImportMultipleTextFiles = New RFunction + clsFileNamesWithExt = New RFunction clsImportFixedWidthText.SetPackageName("readr") clsImportFixedWidthText.SetRCommand("read_table") @@ -385,27 +394,26 @@ Public Class dlgImportDataset 'commands for multiple files clsGetFilesList.SetRCommand("list.files") - 'clsGetFilesList.AddParameter("pattern", Chr(34) & "\\.csv$" & Chr(34), iPosition:=1) clsGetFilesList.AddParameter("full.names", "TRUE", iPosition:=2) clsGetFilesList.AddParameter("ignore.case", "TRUE", iPosition:=3) - clsImportMultipleFiles.SetPackageName("rio") clsImportMultipleFiles.SetRCommand("import_list") clsImportMultipleFiles.AddParameter("file", clsRFunctionParameter:=clsGetFilesList, iPosition:=0) clsImportMultipleFiles.AddParameter("stringsAsFactors", "TRUE") - Dim clsSetNames As New RFunction - Dim clsFileNames As New RFunction + clsFileNamesWithExt.SetRCommand("list.files") + clsFileNamesWithExt.AddParameter("full.names", "FALSE", iPosition:=2) + clsFileNamesWithExt.AddParameter("ignore.case", "TRUE", iPosition:=3) - clsFileNames.SetPackageName("tools") - clsFileNames.SetRCommand("file_path_sans_ext") - clsFileNames.AddParameter("x", clsRFunctionParameter:=clsGetFilesList, iPosition:=0) + clsFileNamesWithoutExt.SetPackageName("tools") + clsFileNamesWithoutExt.SetRCommand("file_path_sans_ext") + clsFileNamesWithoutExt.AddParameter("x", clsRFunctionParameter:=clsFileNamesWithExt, iPosition:=0) clsSetNames.SetPackageName("stats") clsSetNames.SetRCommand("setNames") clsSetNames.AddParameter("object", clsRFunctionParameter:=clsGetFilesList, iPosition:=0) - clsSetNames.AddParameter("nm", clsRFunctionParameter:=clsFileNames, iPosition:=1) + clsSetNames.AddParameter("nm", clsRFunctionParameter:=clsFileNamesWithoutExt, iPosition:=1) 'clsImportMultipleTextFiles.SetPackageName("base") clsImportMultipleTextFiles.SetRCommand("lapply") @@ -529,6 +537,7 @@ Public Class dlgImportDataset ucrInputFilePath.AddAdditionalCodeParameterPair(clsEnc2Native, New RParameter("path", 0, False), iAdditionalPairNo:=5) ucrInputFilePath.AddAdditionalCodeParameterPair(clsImportExcelMulti, New RParameter("file", 0), iAdditionalPairNo:=6) ucrInputFilePath.AddAdditionalCodeParameterPair(clsGetFilesList, New RParameter("path", 0), iAdditionalPairNo:=7) + ucrInputFilePath.AddAdditionalCodeParameterPair(clsFileNamesWithExt, New RParameter("path", 0), iAdditionalPairNo:=8) ucrInputFilePath.SetRCode(clsImport, bReset) 'Save control @@ -674,6 +683,7 @@ Public Class dlgImportDataset ucrSaveFile.SetAssignToBooleans(bTempDataFrameList:=True) ucrSaveFile.Hide() clsGetFilesList.AddParameter("pattern", Chr(34) & "\\" & strFileExtension & "$" & Chr(34), iPosition:=1) + clsFileNamesWithExt.AddParameter("pattern", Chr(34) & "\\" & strFileExtension & "$" & Chr(34), iPosition:=1) If {".txt", ".csv", ".dly", ".dat"}.Contains(strFileExtension) Then If strFileExtension = ".dly" Then From 5e2acd07645c690e06fcb9bff604ab2901ed8359 Mon Sep 17 00:00:00 2001 From: Antoine Ntalumeso Date: Tue, 8 Jun 2021 12:08:25 +0200 Subject: [PATCH 07/40] Fixes presentation issue --- instat/dlgBarAndPieChart.Designer.vb | 2 ++ instat/dlgBarAndPieChart.vb | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/instat/dlgBarAndPieChart.Designer.vb b/instat/dlgBarAndPieChart.Designer.vb index 0c9bd164f82..833368547b2 100644 --- a/instat/dlgBarAndPieChart.Designer.vb +++ b/instat/dlgBarAndPieChart.Designer.vb @@ -144,6 +144,7 @@ Partial Class dlgBarAndPieChart 'ucrInputYValue ' Me.ucrInputYValue.AddQuotesIfUnrecognised = True + Me.ucrInputYValue.GetSetSelectedIndex = -1 Me.ucrInputYValue.IsReadOnly = False resources.ApplyResources(Me.ucrInputYValue, "ucrInputYValue") Me.ucrInputYValue.Name = "ucrInputYValue" @@ -160,6 +161,7 @@ Partial Class dlgBarAndPieChart 'ucrInputBarChartPosition ' Me.ucrInputBarChartPosition.AddQuotesIfUnrecognised = True + Me.ucrInputBarChartPosition.GetSetSelectedIndex = -1 Me.ucrInputBarChartPosition.IsReadOnly = False resources.ApplyResources(Me.ucrInputBarChartPosition, "ucrInputBarChartPosition") Me.ucrInputBarChartPosition.Name = "ucrInputBarChartPosition" diff --git a/instat/dlgBarAndPieChart.vb b/instat/dlgBarAndPieChart.vb index 42aff1719c7..5f42001d249 100644 --- a/instat/dlgBarAndPieChart.vb +++ b/instat/dlgBarAndPieChart.vb @@ -56,8 +56,8 @@ Public Class dlgBarAndPieChart bReset = False ChangeLabel() - autoTranslate(Me) TestOkEnabled() + autoTranslate(Me) End Sub Private Sub InitialiseDialog() @@ -337,12 +337,11 @@ Public Class dlgBarAndPieChart SetDialogOptions() ChangeLabel() setColumnChartOption() - TestOkEnabled() - autoTranslate(Me) End Sub Private Sub setColumnChartOption() If ucrInputYValue.GetValue = "Variable" Then + lblPosition.Visible = False ucrReceiverY.SetVisible(True) ucrReceiverY.SetMeAsReceiver() ucrReceiverY.AddOrRemoveParameter(True) @@ -350,6 +349,7 @@ Public Class dlgBarAndPieChart ucrReceiverY.SetVisible(False) ucrReceiverFirst.SetMeAsReceiver() ucrReceiverY.AddOrRemoveParameter(False) + lblPosition.Visible = rdoBarChart.Checked End If End Sub From 7ffce036314d857ff1fda0ff0703187e406f4bce Mon Sep 17 00:00:00 2001 From: Antoine Ntalumeso Date: Tue, 8 Jun 2021 21:45:25 +0200 Subject: [PATCH 08/40] Fixes bug on combo to remember state in reopen --- instat/dlgBarAndPieChart.Designer.vb | 40 +++++++-------- instat/dlgBarAndPieChart.resx | 77 +++++++++++++--------------- instat/dlgBarAndPieChart.vb | 41 +++++++++------ 3 files changed, 83 insertions(+), 75 deletions(-) diff --git a/instat/dlgBarAndPieChart.Designer.vb b/instat/dlgBarAndPieChart.Designer.vb index 833368547b2..f2706bbab8d 100644 --- a/instat/dlgBarAndPieChart.Designer.vb +++ b/instat/dlgBarAndPieChart.Designer.vb @@ -50,9 +50,9 @@ Partial Class dlgBarAndPieChart Me.lblYvariable = New System.Windows.Forms.Label() Me.cmdColumnChartOptions = New System.Windows.Forms.Button() Me.lblYValue = New System.Windows.Forms.Label() - Me.ucrInputYValue = New instat.ucrInputComboBox() + Me.ucrInputBarChartPositions = New instat.ucrInputComboBox() + Me.ucrInputYValues = New instat.ucrInputComboBox() Me.ucrReceiverY = New instat.ucrReceiverSingle() - Me.ucrInputBarChartPosition = New instat.ucrInputComboBox() Me.ucrSaveBar = New instat.ucrSave() Me.ucrChkFlipCoordinates = New instat.ucrCheck() Me.ucrReceiverByFactor = New instat.ucrReceiverSingle() @@ -141,13 +141,21 @@ Partial Class dlgBarAndPieChart resources.ApplyResources(Me.lblYValue, "lblYValue") Me.lblYValue.Name = "lblYValue" ' - 'ucrInputYValue + 'ucrInputBarChartPositions ' - Me.ucrInputYValue.AddQuotesIfUnrecognised = True - Me.ucrInputYValue.GetSetSelectedIndex = -1 - Me.ucrInputYValue.IsReadOnly = False - resources.ApplyResources(Me.ucrInputYValue, "ucrInputYValue") - Me.ucrInputYValue.Name = "ucrInputYValue" + Me.ucrInputBarChartPositions.AddQuotesIfUnrecognised = True + Me.ucrInputBarChartPositions.GetSetSelectedIndex = -1 + Me.ucrInputBarChartPositions.IsReadOnly = False + resources.ApplyResources(Me.ucrInputBarChartPositions, "ucrInputBarChartPositions") + Me.ucrInputBarChartPositions.Name = "ucrInputBarChartPositions" + ' + 'ucrInputYValues + ' + Me.ucrInputYValues.AddQuotesIfUnrecognised = True + Me.ucrInputYValues.GetSetSelectedIndex = -1 + Me.ucrInputYValues.IsReadOnly = False + resources.ApplyResources(Me.ucrInputYValues, "ucrInputYValues") + Me.ucrInputYValues.Name = "ucrInputYValues" ' 'ucrReceiverY ' @@ -158,14 +166,6 @@ Partial Class dlgBarAndPieChart Me.ucrReceiverY.strNcFilePath = "" Me.ucrReceiverY.ucrSelector = Nothing ' - 'ucrInputBarChartPosition - ' - Me.ucrInputBarChartPosition.AddQuotesIfUnrecognised = True - Me.ucrInputBarChartPosition.GetSetSelectedIndex = -1 - Me.ucrInputBarChartPosition.IsReadOnly = False - resources.ApplyResources(Me.ucrInputBarChartPosition, "ucrInputBarChartPosition") - Me.ucrInputBarChartPosition.Name = "ucrInputBarChartPosition" - ' 'ucrSaveBar ' resources.ApplyResources(Me.ucrSaveBar, "ucrSaveBar") @@ -217,13 +217,13 @@ Partial Class dlgBarAndPieChart ' resources.ApplyResources(Me, "$this") Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.Controls.Add(Me.ucrInputYValue) + Me.Controls.Add(Me.ucrInputBarChartPositions) + Me.Controls.Add(Me.ucrInputYValues) Me.Controls.Add(Me.lblYValue) Me.Controls.Add(Me.cmdColumnChartOptions) Me.Controls.Add(Me.lblYvariable) Me.Controls.Add(Me.ucrReceiverY) Me.Controls.Add(Me.lblPosition) - Me.Controls.Add(Me.ucrInputBarChartPosition) Me.Controls.Add(Me.ucrSaveBar) Me.Controls.Add(Me.ucrChkFlipCoordinates) Me.Controls.Add(Me.rdoBarChart) @@ -262,11 +262,11 @@ Partial Class dlgBarAndPieChart Friend WithEvents rdoPieChart As RadioButton Friend WithEvents ucrPnlOptions As UcrPanel Friend WithEvents cmdBarChartOptions As Button - Friend WithEvents ucrInputBarChartPosition As ucrInputComboBox Friend WithEvents lblPosition As Label Friend WithEvents lblYvariable As Label Friend WithEvents ucrReceiverY As ucrReceiverSingle Friend WithEvents cmdColumnChartOptions As Button - Friend WithEvents ucrInputYValue As ucrInputComboBox Friend WithEvents lblYValue As Label + Friend WithEvents ucrInputYValues As ucrInputComboBox + Friend WithEvents ucrInputBarChartPositions As ucrInputComboBox End Class \ No newline at end of file diff --git a/instat/dlgBarAndPieChart.resx b/instat/dlgBarAndPieChart.resx index 0f51d997429..0744a3e2520 100644 --- a/instat/dlgBarAndPieChart.resx +++ b/instat/dlgBarAndPieChart.resx @@ -361,7 +361,7 @@ $this - 5 + 6 True @@ -391,7 +391,7 @@ $this - 3 + 4 NoControl @@ -418,7 +418,7 @@ $this - 2 + 3 True @@ -448,28 +448,49 @@ $this - 1 + 2 + + + 255, 192 + + + 92, 21 + + + 35 + + + ucrInputBarChartPositions + + + instat.ucrInputComboBox, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + $this + + + 0 - + 255, 142 - + 107, 21 - - 20 + + 34 - - ucrInputYValue + + ucrInputYValues - + instat.ucrInputComboBox, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - + $this - - 0 + + 1 True @@ -480,30 +501,6 @@ 415, 411 - - 255, 190 - - - 21, 17, 21, 17 - - - 92, 21 - - - 10 - - - ucrInputBarChartPosition - - - instat.ucrInputComboBox, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - - - $this - - - 6 - 9, 328 @@ -676,7 +673,7 @@ System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 255, 190 + 255, 192 0, 0, 0, 0 @@ -697,6 +694,6 @@ $this - 4 + 5 \ No newline at end of file diff --git a/instat/dlgBarAndPieChart.vb b/instat/dlgBarAndPieChart.vb index 5f42001d249..76d537a46c0 100644 --- a/instat/dlgBarAndPieChart.vb +++ b/instat/dlgBarAndPieChart.vb @@ -77,8 +77,8 @@ Public Class dlgBarAndPieChart ucrPnlOptions.AddParameterPresentCondition(rdoBarChart, "coordpolar", False) ucrPnlOptions.AddToLinkedControls({ucrChkFlipCoordinates}, {rdoBarChart}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrPnlOptions.AddToLinkedControls(ucrInputBarChartPosition, {rdoBarChart}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrInputBarChartPosition.SetLinkedDisplayControl(lblPosition) + ucrPnlOptions.AddToLinkedControls(ucrInputBarChartPositions, {rdoBarChart}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrInputBarChartPositions.SetLinkedDisplayControl(lblPosition) ucrPnlOptions.AddToLinkedControls({ucrReceiverByFactor}, {rdoBarChart}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrReceiverByFactor.SetLinkedDisplayControl(lblByFactor) @@ -126,23 +126,24 @@ Public Class dlgBarAndPieChart ucrChkFlipCoordinates.SetText("Flip Coordinates") ucrChkFlipCoordinates.SetParameter(clsCoordFlipParam, bNewChangeParameterValue:=False, bNewAddRemoveParameter:=True) - ucrInputYValue.SetParameter(New RParameter("stat", 0)) + + ucrInputYValues.SetParameter(New RParameter("stat", 0)) dctStatOptions.Add("Count", Chr(34) & "count" & Chr(34)) dctStatOptions.Add("Variable", Chr(34) & "identity" & Chr(34)) - ucrInputYValue.SetItems(dctStatOptions) - ucrInputYValue.SetDropDownStyleAsNonEditable() - ucrInputYValue.SetRDefault(Chr(34) & "count" & Chr(34)) + ucrInputYValues.SetItems(dctStatOptions) + ucrInputYValues.SetDropDownStyleAsNonEditable() + ucrInputYValues.SetRDefault(Chr(34) & "count" & Chr(34)) - ucrInputBarChartPosition.SetParameter(New RParameter("position", 0)) + ucrInputBarChartPositions.SetParameter(New RParameter("position", 0)) dctPositionPairs.Add("Stack", Chr(34) & "stack" & Chr(34)) dctPositionPairs.Add("Dodge", Chr(34) & "dodge" & Chr(34)) dctPositionPairs.Add("Identity", Chr(34) & "identity" & Chr(34)) dctPositionPairs.Add("Jitter", Chr(34) & "jitter" & Chr(34)) dctPositionPairs.Add("Fill", Chr(34) & "fill" & Chr(34)) dctPositionPairs.Add("Stack in reverse", "position_stack(reverse = TRUE)") - ucrInputBarChartPosition.SetItems(dctPositionPairs) - ucrInputBarChartPosition.SetDropDownStyleAsNonEditable() - ucrInputBarChartPosition.SetRDefault(Chr(34) & "stack" & Chr(34)) + ucrInputBarChartPositions.SetItems(dctPositionPairs) + ucrInputBarChartPositions.SetDropDownStyleAsNonEditable() + ucrInputBarChartPositions.SetRDefault(Chr(34) & "stack" & Chr(34)) End Sub @@ -214,8 +215,8 @@ Public Class dlgBarAndPieChart ucrBarChartSelector.SetRCode(clsRggplotFunction, bReset) ucrPnlOptions.SetRCode(clsBaseOperator, bReset) ucrChkFlipCoordinates.SetRCode(clsBaseOperator, bReset) - ucrInputBarChartPosition.SetRCode(clsRgeomBarFunction, bReset) - ucrInputYValue.SetRCode(clsRgeomBarFunction, bReset) + ucrInputBarChartPositions.SetRCode(clsRgeomBarFunction, bReset) + ucrInputYValues.SetRCode(clsRgeomBarFunction, bReset) End Sub Private Sub TestOkEnabled() @@ -270,7 +271,7 @@ Public Class dlgBarAndPieChart ucrReceiverByFactor.Clear() End If 'Allows for sync with the layer parameters - ucrInputBarChartPosition.SetRCode(clsRgeomBarFunction, bReset) + ucrInputBarChartPositions.SetRCode(clsRgeomBarFunction, bReset) TestOkEnabled() End Sub @@ -340,8 +341,9 @@ Public Class dlgBarAndPieChart End Sub Private Sub setColumnChartOption() - If ucrInputYValue.GetValue = "Variable" Then + If ucrInputYValues.GetValue = "Variable" Then lblPosition.Visible = False + ucrInputBarChartPositions.Visible = False ucrReceiverY.SetVisible(True) ucrReceiverY.SetMeAsReceiver() ucrReceiverY.AddOrRemoveParameter(True) @@ -350,10 +352,11 @@ Public Class dlgBarAndPieChart ucrReceiverFirst.SetMeAsReceiver() ucrReceiverY.AddOrRemoveParameter(False) lblPosition.Visible = rdoBarChart.Checked + ucrInputBarChartPositions.Visible = rdoBarChart.Checked End If End Sub - Private Sub ucrInputYValue_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputYValue.ControlValueChanged + Private Sub ucrInputYValues_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputYValues.ControlValueChanged setColumnChartOption() TestOkEnabled() End Sub @@ -361,4 +364,12 @@ Public Class dlgBarAndPieChart Private Sub CoreControls_ContentsChanged() Handles ucrReceiverFirst.ControlContentsChanged, ucrReceiverY.ControlContentsChanged, ucrSaveBar.ControlContentsChanged TestOkEnabled() End Sub + + Private Sub CoreControls_ContentsChanged(ucrChangedControl As ucrCore) Handles ucrSaveBar.ControlContentsChanged, ucrReceiverY.ControlContentsChanged, ucrReceiverFirst.ControlContentsChanged + + End Sub + + Private Sub ucrPnlOptions_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlOptions.ControlValueChanged + + End Sub End Class From 7ccbdaef3514594ff931c42e4670f3831ae9f938 Mon Sep 17 00:00:00 2001 From: Antoine Ntalumeso Date: Wed, 9 Jun 2021 21:54:43 +0200 Subject: [PATCH 09/40] Improved the design and implemented the new controls in the dialog --- instat/dlgBarAndPieChart.Designer.vb | 114 ++++------- instat/dlgBarAndPieChart.resx | 292 +++++++++------------------ instat/dlgBarAndPieChart.vb | 168 +++++---------- 3 files changed, 188 insertions(+), 386 deletions(-) diff --git a/instat/dlgBarAndPieChart.Designer.vb b/instat/dlgBarAndPieChart.Designer.vb index f2706bbab8d..0b56b23b322 100644 --- a/instat/dlgBarAndPieChart.Designer.vb +++ b/instat/dlgBarAndPieChart.Designer.vb @@ -39,35 +39,25 @@ Partial Class dlgBarAndPieChart Private Sub InitializeComponent() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgBarAndPieChart)) - Me.lblVariable = New System.Windows.Forms.Label() Me.lblByFactor = New System.Windows.Forms.Label() Me.cmdOptions = New System.Windows.Forms.Button() Me.cmdPieChartOptions = New System.Windows.Forms.Button() Me.rdoPieChart = New System.Windows.Forms.RadioButton() - Me.rdoBarChart = New System.Windows.Forms.RadioButton() + Me.rdoValue = New System.Windows.Forms.RadioButton() Me.cmdBarChartOptions = New System.Windows.Forms.Button() Me.lblPosition = New System.Windows.Forms.Label() - Me.lblYvariable = New System.Windows.Forms.Label() Me.cmdColumnChartOptions = New System.Windows.Forms.Button() - Me.lblYValue = New System.Windows.Forms.Label() Me.ucrInputBarChartPositions = New instat.ucrInputComboBox() - Me.ucrInputYValues = New instat.ucrInputComboBox() - Me.ucrReceiverY = New instat.ucrReceiverSingle() Me.ucrSaveBar = New instat.ucrSave() Me.ucrChkFlipCoordinates = New instat.ucrCheck() Me.ucrReceiverByFactor = New instat.ucrReceiverSingle() - Me.ucrReceiverFirst = New instat.ucrReceiverSingle() Me.ucrBarChartSelector = New instat.ucrSelectorByDataFrameAddRemove() Me.ucrBase = New instat.ucrButtons() Me.ucrPnlOptions = New instat.UcrPanel() + Me.rdoFrequency = New System.Windows.Forms.RadioButton() + Me.ucrVariablesAsFactorForBarChart = New instat.ucrVariablesAsFactor() Me.SuspendLayout() ' - 'lblVariable - ' - resources.ApplyResources(Me.lblVariable, "lblVariable") - Me.lblVariable.Name = "lblVariable" - Me.lblVariable.Tag = "Variable:" - ' 'lblByFactor ' resources.ApplyResources(Me.lblByFactor, "lblByFactor") @@ -100,17 +90,17 @@ Partial Class dlgBarAndPieChart Me.rdoPieChart.Tag = "Pie_Chart" Me.rdoPieChart.UseVisualStyleBackColor = False ' - 'rdoBarChart + 'rdoValue ' - resources.ApplyResources(Me.rdoBarChart, "rdoBarChart") - Me.rdoBarChart.BackColor = System.Drawing.SystemColors.Control - Me.rdoBarChart.FlatAppearance.BorderColor = System.Drawing.SystemColors.ActiveCaption - Me.rdoBarChart.FlatAppearance.BorderSize = 2 - Me.rdoBarChart.FlatAppearance.CheckedBackColor = System.Drawing.SystemColors.ActiveCaption - Me.rdoBarChart.Name = "rdoBarChart" - Me.rdoBarChart.TabStop = True - Me.rdoBarChart.Tag = "Bar_Chart" - Me.rdoBarChart.UseVisualStyleBackColor = False + resources.ApplyResources(Me.rdoValue, "rdoValue") + Me.rdoValue.BackColor = System.Drawing.SystemColors.Control + Me.rdoValue.FlatAppearance.BorderColor = System.Drawing.SystemColors.ActiveCaption + Me.rdoValue.FlatAppearance.BorderSize = 2 + Me.rdoValue.FlatAppearance.CheckedBackColor = System.Drawing.SystemColors.ActiveCaption + Me.rdoValue.Name = "rdoValue" + Me.rdoValue.TabStop = True + Me.rdoValue.Tag = "Value" + Me.rdoValue.UseVisualStyleBackColor = False ' 'cmdBarChartOptions ' @@ -124,11 +114,6 @@ Partial Class dlgBarAndPieChart resources.ApplyResources(Me.lblPosition, "lblPosition") Me.lblPosition.Name = "lblPosition" ' - 'lblYvariable - ' - resources.ApplyResources(Me.lblYvariable, "lblYvariable") - Me.lblYvariable.Name = "lblYvariable" - ' 'cmdColumnChartOptions ' resources.ApplyResources(Me.cmdColumnChartOptions, "cmdColumnChartOptions") @@ -136,11 +121,6 @@ Partial Class dlgBarAndPieChart Me.cmdColumnChartOptions.Tag = "Column_Chart_Options" Me.cmdColumnChartOptions.UseVisualStyleBackColor = True ' - 'lblYValue - ' - resources.ApplyResources(Me.lblYValue, "lblYValue") - Me.lblYValue.Name = "lblYValue" - ' 'ucrInputBarChartPositions ' Me.ucrInputBarChartPositions.AddQuotesIfUnrecognised = True @@ -149,23 +129,6 @@ Partial Class dlgBarAndPieChart resources.ApplyResources(Me.ucrInputBarChartPositions, "ucrInputBarChartPositions") Me.ucrInputBarChartPositions.Name = "ucrInputBarChartPositions" ' - 'ucrInputYValues - ' - Me.ucrInputYValues.AddQuotesIfUnrecognised = True - Me.ucrInputYValues.GetSetSelectedIndex = -1 - Me.ucrInputYValues.IsReadOnly = False - resources.ApplyResources(Me.ucrInputYValues, "ucrInputYValues") - Me.ucrInputYValues.Name = "ucrInputYValues" - ' - 'ucrReceiverY - ' - Me.ucrReceiverY.frmParent = Me - resources.ApplyResources(Me.ucrReceiverY, "ucrReceiverY") - Me.ucrReceiverY.Name = "ucrReceiverY" - Me.ucrReceiverY.Selector = Nothing - Me.ucrReceiverY.strNcFilePath = "" - Me.ucrReceiverY.ucrSelector = Nothing - ' 'ucrSaveBar ' resources.ApplyResources(Me.ucrSaveBar, "ucrSaveBar") @@ -186,15 +149,6 @@ Partial Class dlgBarAndPieChart Me.ucrReceiverByFactor.strNcFilePath = "" Me.ucrReceiverByFactor.ucrSelector = Nothing ' - 'ucrReceiverFirst - ' - Me.ucrReceiverFirst.frmParent = Me - resources.ApplyResources(Me.ucrReceiverFirst, "ucrReceiverFirst") - Me.ucrReceiverFirst.Name = "ucrReceiverFirst" - Me.ucrReceiverFirst.Selector = Nothing - Me.ucrReceiverFirst.strNcFilePath = "" - Me.ucrReceiverFirst.ucrSelector = Nothing - ' 'ucrBarChartSelector ' Me.ucrBarChartSelector.bDropUnusedFilterLevels = False @@ -213,26 +167,44 @@ Partial Class dlgBarAndPieChart resources.ApplyResources(Me.ucrPnlOptions, "ucrPnlOptions") Me.ucrPnlOptions.Name = "ucrPnlOptions" ' + 'rdoFrequency + ' + resources.ApplyResources(Me.rdoFrequency, "rdoFrequency") + Me.rdoFrequency.BackColor = System.Drawing.SystemColors.Control + Me.rdoFrequency.FlatAppearance.BorderColor = System.Drawing.SystemColors.ActiveCaption + Me.rdoFrequency.FlatAppearance.BorderSize = 2 + Me.rdoFrequency.FlatAppearance.CheckedBackColor = System.Drawing.SystemColors.ActiveCaption + Me.rdoFrequency.Name = "rdoFrequency" + Me.rdoFrequency.TabStop = True + Me.rdoFrequency.Tag = "Frequency" + Me.rdoFrequency.UseVisualStyleBackColor = False + ' + 'ucrVariablesAsFactorForBarChart + ' + Me.ucrVariablesAsFactorForBarChart.frmParent = Me + resources.ApplyResources(Me.ucrVariablesAsFactorForBarChart, "ucrVariablesAsFactorForBarChart") + Me.ucrVariablesAsFactorForBarChart.Name = "ucrVariablesAsFactorForBarChart" + Me.ucrVariablesAsFactorForBarChart.Selector = Nothing + Me.ucrVariablesAsFactorForBarChart.strNcFilePath = "" + Me.ucrVariablesAsFactorForBarChart.ucrSelector = Nothing + Me.ucrVariablesAsFactorForBarChart.ucrVariableSelector = Nothing + ' 'dlgBarAndPieChart ' resources.ApplyResources(Me, "$this") Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.ucrVariablesAsFactorForBarChart) + Me.Controls.Add(Me.rdoFrequency) Me.Controls.Add(Me.ucrInputBarChartPositions) - Me.Controls.Add(Me.ucrInputYValues) - Me.Controls.Add(Me.lblYValue) Me.Controls.Add(Me.cmdColumnChartOptions) - Me.Controls.Add(Me.lblYvariable) - Me.Controls.Add(Me.ucrReceiverY) Me.Controls.Add(Me.lblPosition) Me.Controls.Add(Me.ucrSaveBar) Me.Controls.Add(Me.ucrChkFlipCoordinates) - Me.Controls.Add(Me.rdoBarChart) + Me.Controls.Add(Me.rdoValue) Me.Controls.Add(Me.rdoPieChart) Me.Controls.Add(Me.cmdOptions) Me.Controls.Add(Me.lblByFactor) - Me.Controls.Add(Me.lblVariable) Me.Controls.Add(Me.ucrReceiverByFactor) - Me.Controls.Add(Me.ucrReceiverFirst) Me.Controls.Add(Me.ucrBarChartSelector) Me.Controls.Add(Me.ucrBase) Me.Controls.Add(Me.cmdBarChartOptions) @@ -250,23 +222,19 @@ Partial Class dlgBarAndPieChart Friend WithEvents ucrBase As ucrButtons Friend WithEvents ucrBarChartSelector As ucrSelectorByDataFrameAddRemove - Friend WithEvents ucrReceiverFirst As ucrReceiverSingle Friend WithEvents ucrReceiverByFactor As ucrReceiverSingle - Friend WithEvents lblVariable As Label Friend WithEvents lblByFactor As Label Friend WithEvents cmdOptions As Button Friend WithEvents cmdPieChartOptions As Button Friend WithEvents ucrSaveBar As ucrSave Friend WithEvents ucrChkFlipCoordinates As ucrCheck - Friend WithEvents rdoBarChart As RadioButton + Friend WithEvents rdoValue As RadioButton Friend WithEvents rdoPieChart As RadioButton Friend WithEvents ucrPnlOptions As UcrPanel Friend WithEvents cmdBarChartOptions As Button Friend WithEvents lblPosition As Label - Friend WithEvents lblYvariable As Label - Friend WithEvents ucrReceiverY As ucrReceiverSingle Friend WithEvents cmdColumnChartOptions As Button - Friend WithEvents lblYValue As Label - Friend WithEvents ucrInputYValues As ucrInputComboBox Friend WithEvents ucrInputBarChartPositions As ucrInputComboBox + Friend WithEvents rdoFrequency As RadioButton + Friend WithEvents ucrVariablesAsFactorForBarChart As ucrVariablesAsFactor End Class \ No newline at end of file diff --git a/instat/dlgBarAndPieChart.resx b/instat/dlgBarAndPieChart.resx index 0744a3e2520..c5a934f9c4c 100644 --- a/instat/dlgBarAndPieChart.resx +++ b/instat/dlgBarAndPieChart.resx @@ -118,52 +118,22 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - True - - - - NoControl - - - - 252, 76 - - - 58, 13 - - - 5 - - - X Variable: - - - lblVariable - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 13 - True + NoControl + - 252, 226 + 252, 221 103, 13 - 7 + 6 By Factor (Optional): @@ -178,7 +148,7 @@ $this - 12 + 10 NoControl @@ -190,7 +160,7 @@ 121, 25 - 13 + 11 Plot Options @@ -205,7 +175,7 @@ $this - 11 + 9 NoControl @@ -232,11 +202,14 @@ $this - 19 + 15 Button + + False + Flat @@ -244,13 +217,13 @@ NoControl - 206, 12 + 264, 12 110, 28 - 2 + 3 Pie Chart @@ -268,43 +241,43 @@ $this - 10 + 8 - + Button - + Flat - + NoControl - - 98, 12 + + 156, 12 - + 110, 28 - - 1 + + 2 - - Bar Chart + + Value - + MiddleCenter - - rdoBarChart + + rdoValue - + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - - 9 + + 7 NoControl @@ -331,7 +304,7 @@ $this - 18 + 14 True @@ -340,7 +313,7 @@ NoControl - 252, 176 + 252, 265 47, 13 @@ -361,36 +334,6 @@ $this - 6 - - - True - - - NoControl - - - 252, 176 - - - 58, 13 - - - 9 - - - Y Variable: - - - lblYvariable - - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - 4 @@ -403,7 +346,7 @@ 121, 25 - 12 + 10 Column Chart Options @@ -420,44 +363,59 @@ 3 - - True + + Button - + + Flat + + NoControl - - 252, 126 + + 48, 12 - - 47, 13 + + 110, 28 - - 19 + + 1 + + + Frequency - - Y Value: + + MiddleCenter - - lblYValue + + rdoFrequency - - System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - - 2 + + 1 + + + True + + + 6, 13 + + + 415, 411 - 255, 192 + 252, 281 92, 21 - 35 + 9 ucrInputBarChartPositions @@ -469,37 +427,7 @@ $this - 0 - - - 255, 142 - - - 107, 21 - - - 34 - - - ucrInputYValues - - - instat.ucrInputComboBox, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - - - $this - - - 1 - - - True - - - 6, 13 - - - 415, 411 + 2 9, 328 @@ -511,7 +439,7 @@ 255, 24 - 15 + 13 ucrSaveBar @@ -523,7 +451,7 @@ $this - 7 + 5 9, 302 @@ -532,7 +460,7 @@ 166, 20 - 14 + 12 ucrChkFlipCoordinates @@ -544,10 +472,10 @@ $this - 8 + 6 - 255, 239 + 252, 236 0, 0, 0, 0 @@ -556,7 +484,7 @@ 120, 20 - 8 + 7 ucrReceiverByFactor @@ -568,31 +496,7 @@ $this - 14 - - - 255, 89 - - - 0, 0, 0, 0 - - - 120, 20 - - - 6 - - - ucrReceiverFirst - - - instat.ucrReceiverSingle, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - - - $this - - - 15 + 11 10, 41 @@ -616,7 +520,7 @@ $this - 16 + 12 9, 358 @@ -625,7 +529,7 @@ 410, 52 - 16 + 14 ucrBase @@ -637,10 +541,10 @@ $this - 17 + 13 - 66, 6 + 47, 6 330, 36 @@ -658,7 +562,10 @@ $this - 20 + 16 + + + NoControl CenterScreen @@ -672,28 +579,25 @@ System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 255, 192 - - - 0, 0, 0, 0 + + 252, 62 - - 120, 21 + + 125, 136 - - 11 + + 5 - - ucrReceiverY + + ucrVariablesAsFactorForBarChart - - instat.ucrReceiverSingle, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + instat.ucrVariablesAsFactor, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - + $this - - 5 + + 0 \ No newline at end of file diff --git a/instat/dlgBarAndPieChart.vb b/instat/dlgBarAndPieChart.vb index 76d537a46c0..226037b17a9 100644 --- a/instat/dlgBarAndPieChart.vb +++ b/instat/dlgBarAndPieChart.vb @@ -55,7 +55,6 @@ Public Class dlgBarAndPieChart SetRCodeForControls(bReset) bReset = False - ChangeLabel() TestOkEnabled() autoTranslate(Me) End Sub @@ -71,26 +70,30 @@ Public Class dlgBarAndPieChart ucrBase.clsRsyntax.iCallType = 3 ucrBase.iHelpTopicID = 438 - ucrPnlOptions.AddRadioButton(rdoBarChart) + ucrPnlOptions.AddRadioButton(rdoFrequency) + ucrPnlOptions.AddRadioButton(rdoValue) ucrPnlOptions.AddRadioButton(rdoPieChart) - ucrPnlOptions.AddParameterPresentCondition(rdoPieChart, "coordpolar") - ucrPnlOptions.AddParameterPresentCondition(rdoBarChart, "coordpolar", False) + ucrPnlOptions.AddFunctionNamesCondition(rdoFrequency, "coordpolar") + ucrPnlOptions.AddFunctionNamesCondition(rdoValue, "coordpolar") + ucrPnlOptions.AddFunctionNamesCondition(rdoPieChart, "coordpolar") - ucrPnlOptions.AddToLinkedControls({ucrChkFlipCoordinates}, {rdoBarChart}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrPnlOptions.AddToLinkedControls(ucrInputBarChartPositions, {rdoBarChart}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrInputBarChartPositions.SetLinkedDisplayControl(lblPosition) - ucrPnlOptions.AddToLinkedControls({ucrReceiverByFactor}, {rdoBarChart}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrPnlOptions.AddToLinkedControls({ucrChkFlipCoordinates}, {rdoFrequency, rdoValue}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrPnlOptions.AddToLinkedControls(ucrInputBarChartPositions, {rdoFrequency, rdoValue}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrPnlOptions.AddToLinkedControls({ucrReceiverByFactor}, {rdoFrequency, rdoValue}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrReceiverByFactor.SetLinkedDisplayControl(lblByFactor) + ucrInputBarChartPositions.SetLinkedDisplayControl(lblPosition) ucrBarChartSelector.SetParameter(New RParameter("data", 0)) ucrBarChartSelector.SetParameterIsrfunction() - ucrReceiverFirst.Selector = ucrBarChartSelector - ucrReceiverFirst.strSelectorHeading = "Variables" - ucrReceiverFirst.SetParameter(New RParameter("x", 0)) - ucrReceiverFirst.bWithQuotes = False - ucrReceiverFirst.SetParameterIsString() - ucrReceiverFirst.SetLinkedDisplayControl(lblVariable) + ucrVariablesAsFactorForBarChart.SetParameter(New RParameter("y", 1)) + ucrVariablesAsFactorForBarChart.SetParameterIsString() + ucrVariablesAsFactorForBarChart.bWithQuotes = False + ucrVariablesAsFactorForBarChart.Selector = ucrBarChartSelector + ucrVariablesAsFactorForBarChart.SetFactorReceiver(ucrReceiverByFactor) + ucrVariablesAsFactorForBarChart.strSelectorHeading = "Variables" + ucrVariablesAsFactorForBarChart.SetValuesToIgnore({Chr(34) & Chr(34)}) + ucrVariablesAsFactorForBarChart.bAddParameterIfEmpty = True ucrReceiverByFactor.Selector = ucrBarChartSelector ucrReceiverByFactor.SetIncludedDataTypes({"factor"}) @@ -99,13 +102,6 @@ Public Class dlgBarAndPieChart ucrReceiverByFactor.bWithQuotes = False ucrReceiverByFactor.SetParameterIsString() - ucrReceiverY.Selector = ucrBarChartSelector - ucrReceiverY.strSelectorHeading = "Y Variable" - ucrReceiverY.SetParameter(New RParameter("y", 1)) - ucrReceiverY.bWithQuotes = False - ucrReceiverY.SetParameterIsString() - ucrReceiverY.SetLinkedDisplayControl(lblYvariable) - ucrSaveBar.SetIsComboBox() ucrSaveBar.SetCheckBoxText("Save Graph") ucrSaveBar.SetDataFrameSelector(ucrBarChartSelector.ucrAvailableDataFrames) @@ -127,13 +123,6 @@ Public Class dlgBarAndPieChart ucrChkFlipCoordinates.SetParameter(clsCoordFlipParam, bNewChangeParameterValue:=False, bNewAddRemoveParameter:=True) - ucrInputYValues.SetParameter(New RParameter("stat", 0)) - dctStatOptions.Add("Count", Chr(34) & "count" & Chr(34)) - dctStatOptions.Add("Variable", Chr(34) & "identity" & Chr(34)) - ucrInputYValues.SetItems(dctStatOptions) - ucrInputYValues.SetDropDownStyleAsNonEditable() - ucrInputYValues.SetRDefault(Chr(34) & "count" & Chr(34)) - ucrInputBarChartPositions.SetParameter(New RParameter("position", 0)) dctPositionPairs.Add("Stack", Chr(34) & "stack" & Chr(34)) dctPositionPairs.Add("Dodge", Chr(34) & "dodge" & Chr(34)) @@ -156,7 +145,7 @@ Public Class dlgBarAndPieChart ucrBarChartSelector.Reset() ucrBarChartSelector.SetGgplotFunction(clsBaseOperator) - ucrReceiverFirst.SetMeAsReceiver() + ucrVariablesAsFactorForBarChart.SetMeAsReceiver() ucrSaveBar.Reset() bResetSubdialog = True bResetBarLayerSubdialog = True @@ -206,32 +195,19 @@ Public Class dlgBarAndPieChart End Sub Private Sub SetRCodeForControls(bReset As Boolean) - ucrReceiverFirst.SetRCode(clsBarAesFunction, bReset) - ucrReceiverFirst.AddAdditionalCodeParameterPair(clsPieAesFunction, New RParameter("fill", 0), iAdditionalPairNo:=1) - ucrReceiverY.SetRCode(clsBarAesFunction, bReset) - ucrReceiverY.AddAdditionalCodeParameterPair(clsPieAesFunction, New RParameter("y", 1), iAdditionalPairNo:=1) + ucrVariablesAsFactorForBarChart.SetRCode(clsBarAesFunction, bReset) ucrReceiverByFactor.SetRCode(clsBarAesFunction, bReset) ucrSaveBar.SetRCode(clsBaseOperator, bReset) ucrBarChartSelector.SetRCode(clsRggplotFunction, bReset) - ucrPnlOptions.SetRCode(clsBaseOperator, bReset) ucrChkFlipCoordinates.SetRCode(clsBaseOperator, bReset) ucrInputBarChartPositions.SetRCode(clsRgeomBarFunction, bReset) - ucrInputYValues.SetRCode(clsRgeomBarFunction, bReset) End Sub Private Sub TestOkEnabled() - If rdoBarChart.Checked Then - If Not ucrReceiverFirst.IsEmpty AndAlso Not (ucrReceiverY.IsEmpty AndAlso ucrReceiverY.Visible) AndAlso ucrSaveBar.IsComplete Then - ucrBase.OKEnabled(True) - Else - ucrBase.OKEnabled(False) - End If - ElseIf rdoPieChart.Checked Then - If ucrReceiverFirst.IsEmpty OrElse Not ucrSaveBar.IsComplete Then - ucrBase.OKEnabled(False) - Else - ucrBase.OKEnabled(True) - End If + If (Not ucrSaveBar.IsComplete) OrElse (ucrVariablesAsFactorForBarChart.IsEmpty) Then + ucrBase.OKEnabled(False) + Else + ucrBase.OKEnabled(True) End If End Sub @@ -242,7 +218,7 @@ Public Class dlgBarAndPieChart End Sub Private Sub cmdOptions_Click(sender As Object, e As EventArgs) Handles cmdOptions.Click - If rdoBarChart.Checked Then + If rdoValue.Checked Or rdoFrequency.Checked Then sdgPlots.SetRCode(clsNewOperator:=clsBaseOperator, clsNewGlobalAesFunction:=clsBarAesFunction, clsNewYScalecontinuousFunction:=clsYScalecontinuousFunction, clsNewThemeFunction:=clsThemeFuction, dctNewThemeFunctions:=dctThemeFunctions, clsNewXScalecontinuousFunction:=clsXScalecontinuousFunction, clsNewXLabsTitleFunction:=clsXlabFunction, clsNewScaleFillViridisFunction:=clsScaleFillViridisFunction, clsNewScaleColourViridisFunction:=clsScaleColourViridisFunction, clsNewYLabTitleFunction:=clsYlabFunction, clsNewLabsFunction:=clsLabsFunction, clsNewFacetFunction:=clsRFacetFunction, ucrNewBaseSelector:=ucrBarChartSelector, clsNewCoordPolarFunction:=clsCoordPolarFunction, clsNewCoordPolarStartOperator:=clsCoordPolarStartOperator, clsNewXScaleDateFunction:=clsXScaleDateFunction, clsNewYScaleDateFunction:=clsYScaleDateFunction, bReset:=bResetSubdialog, bNewEnableDiscrete:=False) Else sdgPlots.SetRCode(clsNewOperator:=clsBaseOperator, clsNewGlobalAesFunction:=clsPieAesFunction, clsNewYScalecontinuousFunction:=clsYScalecontinuousFunction, clsNewThemeFunction:=clsThemeFuction, dctNewThemeFunctions:=dctThemeFunctions, clsNewXScalecontinuousFunction:=clsXScalecontinuousFunction, clsNewXLabsTitleFunction:=clsXlabFunction, clsNewYLabTitleFunction:=clsYlabFunction, clsNewLabsFunction:=clsLabsFunction, clsNewScaleFillViridisFunction:=clsScaleFillViridisFunction, clsNewScaleColourViridisFunction:=clsScaleColourViridisFunction, clsNewFacetFunction:=clsRFacetFunction, ucrNewBaseSelector:=ucrBarChartSelector, clsNewCoordPolarFunction:=clsCoordPolarFunction, clsNewCoordPolarStartOperator:=clsCoordPolarStartOperator, clsNewXScaleDateFunction:=clsXScaleDateFunction, clsNewYScaleDateFunction:=clsYScaleDateFunction, bReset:=bResetSubdialog) @@ -260,11 +236,19 @@ Public Class dlgBarAndPieChart sdgLayerOptions.SetupLayer(clsNewGgPlot:=clsRggplotFunction, clsNewGeomFunc:=clsRgeomBarFunction, clsNewGlobalAesFunc:=clsBarAesFunction, clsNewLocalAes:=clsLocalRaesFunction, bFixGeom:=True, ucrNewBaseSelector:=ucrBarChartSelector, bApplyAesGlobally:=True, bReset:=bResetBarLayerSubdialog) sdgLayerOptions.ShowDialog() bResetBarLayerSubdialog = False - If clsBarAesFunction.ContainsParameter("x") Then - ucrReceiverFirst.Add(clsBarAesFunction.GetParameter("x").strArgumentValue) - Else - ucrReceiverFirst.Clear() - End If + For Each clsParam In clsBarAesFunction.clsParameters + If clsParam.strArgumentName = "y" AndAlso (clsParam.strArgumentValue <> "value" OrElse ucrVariablesAsFactorForBarChart.bSingleVariable) Then + If clsParam.strArgumentValue = (Chr(34) & Chr(34)) Then + ucrVariablesAsFactorForBarChart.Clear() + Else ucrVariablesAsFactorForBarChart.Add(clsParam.strArgumentValue) + End If + ElseIf clsParam.strArgumentName = "x" AndAlso (clsParam.strArgumentValue <> "value" OrElse ucrVariablesAsFactorForBarChart.bSingleVariable) Then + If clsParam.strArgumentValue = (Chr(34) & Chr(34)) Then + ucrVariablesAsFactorForBarChart.Clear() + Else ucrVariablesAsFactorForBarChart.Add(clsParam.strArgumentValue) + End If + End If + Next If clsBarAesFunction.ContainsParameter("fill") Then ucrReceiverByFactor.Add(clsBarAesFunction.GetParameter("fill").strArgumentValue) Else @@ -279,20 +263,11 @@ Public Class dlgBarAndPieChart sdgLayerOptions.SetupLayer(clsNewGgPlot:=clsRggplotFunction, clsNewGeomFunc:=clsRgeomBarFunction, clsNewGlobalAesFunc:=clsPieAesFunction, clsNewLocalAes:=clsLocalRaesFunction, bFixGeom:=True, ucrNewBaseSelector:=ucrBarChartSelector, bApplyAesGlobally:=True, bReset:=bResetBarLayerSubdialog) sdgLayerOptions.ShowDialog() bResetBarLayerSubdialog = False - 'temp fix - should instead be setting R code of the receivers here - If Not clsPieAesFunction.ContainsParameter("x") Then - clsPieAesFunction.AddParameter("x", Chr(34) & Chr(34)) - End If - If clsPieAesFunction.ContainsParameter("fill") Then - ucrReceiverFirst.Add(clsPieAesFunction.GetParameter("fill").strArgumentValue) - Else - ucrReceiverFirst.Clear() - End If TestOkEnabled() End Sub Private Sub SetDialogOptions() - If rdoBarChart.Checked Then + If rdoValue.Checked Or rdoFrequency.Checked Then clsRggplotFunction.AddParameter("mapping", clsRFunctionParameter:=clsBarAesFunction, iPosition:=1) cmdPieChartOptions.Visible = False cmdBarChartOptions.Visible = True @@ -306,70 +281,25 @@ Public Class dlgBarAndPieChart If Not ucrSaveBar.bUserTyped Then ucrSaveBar.SetPrefix("bar") End If - ucrReceiverFirst.RemoveIncludedMetadataProperty("class") - ucrReceiverFirst.strSelectorHeading = "Variables" - ElseIf rdoPieChart.Checked Then - clsRggplotFunction.AddParameter("mapping", clsRFunctionParameter:=clsPieAesFunction, iPosition:=1) - clsRgeomBarFunction.AddParameter("width", "1") - clsBaseOperator.AddParameter(clsRCoordPolarParam) - clsBaseOperator.RemoveParameterByName("geom_col") - ucrReceiverFirst.SetMeAsReceiver() - cmdPieChartOptions.Visible = True - cmdBarChartOptions.Visible = False - cmdColumnChartOptions.Visible = False - If Not ucrSaveBar.bUserTyped Then - ucrSaveBar.SetPrefix("pie") - End If - ucrReceiverFirst.SetIncludedDataTypes({"factor"}) - ucrReceiverFirst.strSelectorHeading = "Factors" - If Not {"factor", "logical"}.Contains(ucrReceiverFirst.strCurrDataType) Then - ucrReceiverFirst.Clear() - End If + ucrVariablesAsFactorForBarChart.RemoveIncludedMetadataProperty("class") + ucrVariablesAsFactorForBarChart.strSelectorHeading = "Variables" End If End Sub - Private Sub ChangeLabel() - lblVariable.Text = If(rdoBarChart.Checked, "X Variable", "Variable") - lblYValue.Text = If(rdoBarChart.Checked, "Y Value", "Value") - lblYvariable.Text = If(rdoBarChart.Checked, "Y Variable", "Value from") - End Sub - - Private Sub ucrPnlOptions_ControlValueChanged() Handles ucrPnlOptions.ControlValueChanged - SetDialogOptions() - ChangeLabel() - setColumnChartOption() - End Sub - - Private Sub setColumnChartOption() - If ucrInputYValues.GetValue = "Variable" Then - lblPosition.Visible = False - ucrInputBarChartPositions.Visible = False - ucrReceiverY.SetVisible(True) - ucrReceiverY.SetMeAsReceiver() - ucrReceiverY.AddOrRemoveParameter(True) - Else - ucrReceiverY.SetVisible(False) - ucrReceiverFirst.SetMeAsReceiver() - ucrReceiverY.AddOrRemoveParameter(False) - lblPosition.Visible = rdoBarChart.Checked - ucrInputBarChartPositions.Visible = rdoBarChart.Checked + Private Sub ChangeParameterName() + If rdoValue.Checked Then + ucrVariablesAsFactorForBarChart.ChangeParameterName("x") + ElseIf rdoFrequency.Checked Then + ucrVariablesAsFactorForBarChart.ChangeParameterName("y") End If End Sub - - Private Sub ucrInputYValues_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputYValues.ControlValueChanged - setColumnChartOption() - TestOkEnabled() + Private Sub ucrPnlOptions_ControlValueChanged() Handles ucrPnlOptions.ControlValueChanged, ucrVariablesAsFactorForBarChart.ControlValueChanged + SetDialogOptions() + ChangeParameterName() End Sub - Private Sub CoreControls_ContentsChanged() Handles ucrReceiverFirst.ControlContentsChanged, ucrReceiverY.ControlContentsChanged, ucrSaveBar.ControlContentsChanged + Private Sub CoreControls_ContentsChanged() Handles ucrVariablesAsFactorForBarChart.ControlContentsChanged, ucrSaveBar.ControlContentsChanged TestOkEnabled() End Sub - Private Sub CoreControls_ContentsChanged(ucrChangedControl As ucrCore) Handles ucrSaveBar.ControlContentsChanged, ucrReceiverY.ControlContentsChanged, ucrReceiverFirst.ControlContentsChanged - - End Sub - - Private Sub ucrPnlOptions_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlOptions.ControlValueChanged - - End Sub End Class From 658fb38f57263972afd0b4788a79208b56072dae Mon Sep 17 00:00:00 2001 From: Antoine Ntalumeso Date: Thu, 10 Jun 2021 09:48:22 +0200 Subject: [PATCH 10/40] Added X variable reciver --- instat/dlgBarAndPieChart.Designer.vb | 20 +++ instat/dlgBarAndPieChart.resx | 233 ++++++++++++++++----------- instat/dlgBarAndPieChart.vb | 39 +++-- 3 files changed, 191 insertions(+), 101 deletions(-) diff --git a/instat/dlgBarAndPieChart.Designer.vb b/instat/dlgBarAndPieChart.Designer.vb index 0b56b23b322..e09a47561ae 100644 --- a/instat/dlgBarAndPieChart.Designer.vb +++ b/instat/dlgBarAndPieChart.Designer.vb @@ -56,6 +56,8 @@ Partial Class dlgBarAndPieChart Me.ucrPnlOptions = New instat.UcrPanel() Me.rdoFrequency = New System.Windows.Forms.RadioButton() Me.ucrVariablesAsFactorForBarChart = New instat.ucrVariablesAsFactor() + Me.lblXvariable = New System.Windows.Forms.Label() + Me.ucrReceiverX = New instat.ucrReceiverSingle() Me.SuspendLayout() ' 'lblByFactor @@ -189,10 +191,26 @@ Partial Class dlgBarAndPieChart Me.ucrVariablesAsFactorForBarChart.ucrSelector = Nothing Me.ucrVariablesAsFactorForBarChart.ucrVariableSelector = Nothing ' + 'lblXvariable + ' + resources.ApplyResources(Me.lblXvariable, "lblXvariable") + Me.lblXvariable.Name = "lblXvariable" + ' + 'ucrReceiverX + ' + Me.ucrReceiverX.frmParent = Me + resources.ApplyResources(Me.ucrReceiverX, "ucrReceiverX") + Me.ucrReceiverX.Name = "ucrReceiverX" + Me.ucrReceiverX.Selector = Nothing + Me.ucrReceiverX.strNcFilePath = "" + Me.ucrReceiverX.ucrSelector = Nothing + ' 'dlgBarAndPieChart ' resources.ApplyResources(Me, "$this") Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.lblXvariable) + Me.Controls.Add(Me.ucrReceiverX) Me.Controls.Add(Me.ucrVariablesAsFactorForBarChart) Me.Controls.Add(Me.rdoFrequency) Me.Controls.Add(Me.ucrInputBarChartPositions) @@ -237,4 +255,6 @@ Partial Class dlgBarAndPieChart Friend WithEvents ucrInputBarChartPositions As ucrInputComboBox Friend WithEvents rdoFrequency As RadioButton Friend WithEvents ucrVariablesAsFactorForBarChart As ucrVariablesAsFactor + Friend WithEvents lblXvariable As Label + Friend WithEvents ucrReceiverX As ucrReceiverSingle End Class \ No newline at end of file diff --git a/instat/dlgBarAndPieChart.resx b/instat/dlgBarAndPieChart.resx index c5a934f9c4c..03bb472989e 100644 --- a/instat/dlgBarAndPieChart.resx +++ b/instat/dlgBarAndPieChart.resx @@ -127,7 +127,7 @@ - 252, 221 + 252, 255 103, 13 @@ -148,7 +148,7 @@ $this - 10 + 12 NoControl @@ -175,7 +175,7 @@ $this - 9 + 11 NoControl @@ -202,7 +202,7 @@ $this - 15 + 17 Button @@ -241,7 +241,7 @@ $this - 8 + 10 Button @@ -277,7 +277,7 @@ $this - 7 + 9 NoControl @@ -304,7 +304,7 @@ $this - 14 + 16 True @@ -313,7 +313,7 @@ NoControl - 252, 265 + 252, 297 47, 13 @@ -334,7 +334,7 @@ $this - 4 + 6 NoControl @@ -361,55 +361,10 @@ $this - 3 - - - Button - - - Flat - - - NoControl - - - 48, 12 - - - 110, 28 - - - 1 - - - Frequency - - - MiddleCenter - - - rdoFrequency - - - System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - - - True - - - 6, 13 - - - 415, 411 + 5 - 252, 281 + 252, 313 92, 21 @@ -427,7 +382,7 @@ $this - 2 + 4 9, 328 @@ -451,7 +406,7 @@ $this - 5 + 7 9, 302 @@ -472,31 +427,127 @@ $this - 6 + 8 - - 252, 236 + + True + + + 6, 13 - + + 415, 411 + + + True + + + NoControl + + + 252, 212 + + + 58, 13 + + + 15 + + + X Variable: + + + lblXvariable + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + 255, 226 + + 0, 0, 0, 0 - - 120, 20 + + 120, 21 - - 7 + + 16 - - ucrReceiverByFactor + + ucrReceiverX - + instat.ucrReceiverSingle, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - + $this - - 11 + + 1 + + + 252, 62 + + + 125, 136 + + + 5 + + + ucrVariablesAsFactorForBarChart + + + instat.ucrVariablesAsFactor, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + $this + + + 2 + + + Button + + + Flat + + + NoControl + + + 48, 12 + + + 110, 28 + + + 1 + + + Frequency + + + MiddleCenter + + + rdoFrequency + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 10, 41 @@ -520,7 +571,7 @@ $this - 12 + 14 9, 358 @@ -541,7 +592,7 @@ $this - 13 + 15 47, 6 @@ -562,10 +613,7 @@ $this - 16 - - - NoControl + 18 CenterScreen @@ -579,25 +627,28 @@ System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 252, 62 + + 252, 270 - - 125, 136 + + 0, 0, 0, 0 - - 5 + + 120, 20 - - ucrVariablesAsFactorForBarChart + + 7 - - instat.ucrVariablesAsFactor, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + ucrReceiverByFactor - + + instat.ucrReceiverSingle, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + $this - - 0 + + 13 \ No newline at end of file diff --git a/instat/dlgBarAndPieChart.vb b/instat/dlgBarAndPieChart.vb index 226037b17a9..e6371d1058f 100644 --- a/instat/dlgBarAndPieChart.vb +++ b/instat/dlgBarAndPieChart.vb @@ -77,16 +77,16 @@ Public Class dlgBarAndPieChart ucrPnlOptions.AddFunctionNamesCondition(rdoValue, "coordpolar") ucrPnlOptions.AddFunctionNamesCondition(rdoPieChart, "coordpolar") - ucrPnlOptions.AddToLinkedControls({ucrChkFlipCoordinates}, {rdoFrequency, rdoValue}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrPnlOptions.AddToLinkedControls(ucrInputBarChartPositions, {rdoFrequency, rdoValue}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrPnlOptions.AddToLinkedControls({ucrReceiverByFactor}, {rdoFrequency, rdoValue}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrPnlOptions.AddToLinkedControls({ucrChkFlipCoordinates, ucrInputBarChartPositions, ucrReceiverByFactor}, {rdoFrequency, rdoValue}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrPnlOptions.AddToLinkedControls(ucrReceiverX, {rdoValue}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrReceiverByFactor.SetLinkedDisplayControl(lblByFactor) + ucrReceiverX.SetLinkedDisplayControl(lblXvariable) ucrInputBarChartPositions.SetLinkedDisplayControl(lblPosition) ucrBarChartSelector.SetParameter(New RParameter("data", 0)) ucrBarChartSelector.SetParameterIsrfunction() - ucrVariablesAsFactorForBarChart.SetParameter(New RParameter("y", 1)) + ucrVariablesAsFactorForBarChart.SetParameter(New RParameter("x", 0)) ucrVariablesAsFactorForBarChart.SetParameterIsString() ucrVariablesAsFactorForBarChart.bWithQuotes = False ucrVariablesAsFactorForBarChart.Selector = ucrBarChartSelector @@ -95,6 +95,12 @@ Public Class dlgBarAndPieChart ucrVariablesAsFactorForBarChart.SetValuesToIgnore({Chr(34) & Chr(34)}) ucrVariablesAsFactorForBarChart.bAddParameterIfEmpty = True + ucrReceiverX.Selector = ucrBarChartSelector + ucrReceiverX.strSelectorHeading = "X Variable" + 'ucrReceiverX.SetParameter(New RParameter("x", 0)) + ucrReceiverX.bWithQuotes = False + ucrReceiverX.SetParameterIsString() + ucrReceiverByFactor.Selector = ucrBarChartSelector ucrReceiverByFactor.SetIncludedDataTypes({"factor"}) ucrReceiverByFactor.strSelectorHeading = "Factors" @@ -196,6 +202,7 @@ Public Class dlgBarAndPieChart Private Sub SetRCodeForControls(bReset As Boolean) ucrVariablesAsFactorForBarChart.SetRCode(clsBarAesFunction, bReset) + ucrReceiverX.SetRCode(clsBarAesFunction, bReset) ucrReceiverByFactor.SetRCode(clsBarAesFunction, bReset) ucrSaveBar.SetRCode(clsBaseOperator, bReset) ucrBarChartSelector.SetRCode(clsRggplotFunction, bReset) @@ -204,10 +211,18 @@ Public Class dlgBarAndPieChart End Sub Private Sub TestOkEnabled() - If (Not ucrSaveBar.IsComplete) OrElse (ucrVariablesAsFactorForBarChart.IsEmpty) Then - ucrBase.OKEnabled(False) - Else - ucrBase.OKEnabled(True) + If rdoFrequency.Checked Then + If Not ucrSaveBar.IsComplete OrElse ucrVariablesAsFactorForBarChart.IsEmpty Then + ucrBase.OKEnabled(False) + Else + ucrBase.OKEnabled(True) + End If + ElseIf rdoValue.Checked Then + If Not ucrSaveBar.IsComplete OrElse ucrVariablesAsFactorForBarChart.IsEmpty OrElse ucrReceiverX.IsEmpty Then + ucrBase.OKEnabled(False) + Else + ucrBase.OKEnabled(True) + End If End If End Sub @@ -288,9 +303,10 @@ Public Class dlgBarAndPieChart Private Sub ChangeParameterName() If rdoValue.Checked Then - ucrVariablesAsFactorForBarChart.ChangeParameterName("x") - ElseIf rdoFrequency.Checked Then ucrVariablesAsFactorForBarChart.ChangeParameterName("y") + ucrReceiverX.Add(clsBarAesFunction.GetParameter("x").strArgumentValue) + ElseIf rdoFrequency.Checked Then + ucrVariablesAsFactorForBarChart.ChangeParameterName("x") End If End Sub Private Sub ucrPnlOptions_ControlValueChanged() Handles ucrPnlOptions.ControlValueChanged, ucrVariablesAsFactorForBarChart.ControlValueChanged @@ -302,4 +318,7 @@ Public Class dlgBarAndPieChart TestOkEnabled() End Sub + Private Sub CoreControls_ContentsChanged(ucrChangedControl As ucrCore) Handles ucrVariablesAsFactorForBarChart.ControlContentsChanged, ucrSaveBar.ControlContentsChanged + + End Sub End Class From ed3c97e727174c88b88c8f6590a42eddff49d4a4 Mon Sep 17 00:00:00 2001 From: Antoine Ntalumeso Date: Thu, 10 Jun 2021 11:09:28 +0200 Subject: [PATCH 11/40] Improved the codes --- instat/dlgBarAndPieChart.resx | 22 +++++++++++----------- instat/dlgBarAndPieChart.vb | 26 +++++++++++++------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/instat/dlgBarAndPieChart.resx b/instat/dlgBarAndPieChart.resx index 03bb472989e..626a0d01613 100644 --- a/instat/dlgBarAndPieChart.resx +++ b/instat/dlgBarAndPieChart.resx @@ -133,7 +133,7 @@ 103, 13 - 6 + 8 By Factor (Optional): @@ -160,7 +160,7 @@ 121, 25 - 11 + 13 Plot Options @@ -319,7 +319,7 @@ 47, 13 - 8 + 10 Position: @@ -346,7 +346,7 @@ 121, 25 - 10 + 12 Column Chart Options @@ -370,7 +370,7 @@ 92, 21 - 9 + 11 ucrInputBarChartPositions @@ -394,7 +394,7 @@ 255, 24 - 13 + 15 ucrSaveBar @@ -415,7 +415,7 @@ 166, 20 - 12 + 14 ucrChkFlipCoordinates @@ -451,7 +451,7 @@ 58, 13 - 15 + 6 X Variable: @@ -478,7 +478,7 @@ 120, 21 - 16 + 7 ucrReceiverX @@ -580,7 +580,7 @@ 410, 52 - 14 + 16 ucrBase @@ -637,7 +637,7 @@ 120, 20 - 7 + 9 ucrReceiverByFactor diff --git a/instat/dlgBarAndPieChart.vb b/instat/dlgBarAndPieChart.vb index e6371d1058f..4cfdbe3b24b 100644 --- a/instat/dlgBarAndPieChart.vb +++ b/instat/dlgBarAndPieChart.vb @@ -86,9 +86,9 @@ Public Class dlgBarAndPieChart ucrBarChartSelector.SetParameter(New RParameter("data", 0)) ucrBarChartSelector.SetParameterIsrfunction() - ucrVariablesAsFactorForBarChart.SetParameter(New RParameter("x", 0)) + 'ucrVariablesAsFactorForBarChart.SetParameter(New RParameter("x", 0)) ucrVariablesAsFactorForBarChart.SetParameterIsString() - ucrVariablesAsFactorForBarChart.bWithQuotes = False + 'ucrVariablesAsFactorForBarChart.bWithQuotes = False ucrVariablesAsFactorForBarChart.Selector = ucrBarChartSelector ucrVariablesAsFactorForBarChart.SetFactorReceiver(ucrReceiverByFactor) ucrVariablesAsFactorForBarChart.strSelectorHeading = "Variables" @@ -98,7 +98,7 @@ Public Class dlgBarAndPieChart ucrReceiverX.Selector = ucrBarChartSelector ucrReceiverX.strSelectorHeading = "X Variable" 'ucrReceiverX.SetParameter(New RParameter("x", 0)) - ucrReceiverX.bWithQuotes = False + 'ucrReceiverX.bWithQuotes = False ucrReceiverX.SetParameterIsString() ucrReceiverByFactor.Selector = ucrBarChartSelector @@ -302,23 +302,23 @@ Public Class dlgBarAndPieChart End Sub Private Sub ChangeParameterName() + clsBarAesFunction.RemoveParameterByName("x") + clsBarAesFunction.RemoveParameterByName("y") If rdoValue.Checked Then - ucrVariablesAsFactorForBarChart.ChangeParameterName("y") - ucrReceiverX.Add(clsBarAesFunction.GetParameter("x").strArgumentValue) - ElseIf rdoFrequency.Checked Then - ucrVariablesAsFactorForBarChart.ChangeParameterName("x") + 'ucrVariablesAsFactorForBarChart.ChangeParameterName("y") + clsBarAesFunction.AddParameter("x", ucrReceiverX.GetVariableNames(False), iPosition:=1) + clsBarAesFunction.AddParameter("y", ucrVariablesAsFactorForBarChart.GetVariableNames(False), iPosition:=2) + ElseIf rdoFrequency.Checked Then + 'ucrVariablesAsFactorForBarChart.ChangeParameterName("x") + clsBarAesFunction.AddParameter("x", ucrVariablesAsFactorForBarChart.GetVariableNames(False), iPosition:=1) End If End Sub - Private Sub ucrPnlOptions_ControlValueChanged() Handles ucrPnlOptions.ControlValueChanged, ucrVariablesAsFactorForBarChart.ControlValueChanged + Private Sub ucrPnlOptions_ControlValueChanged() Handles ucrPnlOptions.ControlValueChanged, ucrVariablesAsFactorForBarChart.ControlValueChanged, ucrReceiverX.ControlValueChanged SetDialogOptions() ChangeParameterName() End Sub - Private Sub CoreControls_ContentsChanged() Handles ucrVariablesAsFactorForBarChart.ControlContentsChanged, ucrSaveBar.ControlContentsChanged + Private Sub CoreControls_ContentsChanged() Handles ucrVariablesAsFactorForBarChart.ControlContentsChanged, ucrSaveBar.ControlContentsChanged, ucrReceiverX.ControlContentsChanged TestOkEnabled() End Sub - - Private Sub CoreControls_ContentsChanged(ucrChangedControl As ucrCore) Handles ucrVariablesAsFactorForBarChart.ControlContentsChanged, ucrSaveBar.ControlContentsChanged - - End Sub End Class From bb412a7b75d26bf1166e5e70404589ab867ddbbc Mon Sep 17 00:00:00 2001 From: Antoine Ntalumeso Date: Thu, 10 Jun 2021 13:01:25 +0200 Subject: [PATCH 12/40] Added stat parameter for frequency and value option --- instat/dlgBarAndPieChart.vb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instat/dlgBarAndPieChart.vb b/instat/dlgBarAndPieChart.vb index 4cfdbe3b24b..1f66b112e1a 100644 --- a/instat/dlgBarAndPieChart.vb +++ b/instat/dlgBarAndPieChart.vb @@ -305,12 +305,12 @@ Public Class dlgBarAndPieChart clsBarAesFunction.RemoveParameterByName("x") clsBarAesFunction.RemoveParameterByName("y") If rdoValue.Checked Then - 'ucrVariablesAsFactorForBarChart.ChangeParameterName("y") clsBarAesFunction.AddParameter("x", ucrReceiverX.GetVariableNames(False), iPosition:=1) clsBarAesFunction.AddParameter("y", ucrVariablesAsFactorForBarChart.GetVariableNames(False), iPosition:=2) + clsRgeomBarFunction.AddParameter("stat", Chr(34) & "identity" & Chr(34), iPosition:=1) ElseIf rdoFrequency.Checked Then - 'ucrVariablesAsFactorForBarChart.ChangeParameterName("x") clsBarAesFunction.AddParameter("x", ucrVariablesAsFactorForBarChart.GetVariableNames(False), iPosition:=1) + clsRgeomBarFunction.AddParameter("stat", Chr(34) & "count" & Chr(34), iPosition:=1) End If End Sub Private Sub ucrPnlOptions_ControlValueChanged() Handles ucrPnlOptions.ControlValueChanged, ucrVariablesAsFactorForBarChart.ControlValueChanged, ucrReceiverX.ControlValueChanged From 524d66c8031f109f1b6fd80607635d911a973489 Mon Sep 17 00:00:00 2001 From: Antoine Ntalumeso Date: Thu, 10 Jun 2021 13:06:36 +0200 Subject: [PATCH 13/40] Removed commented code --- instat/dlgBarAndPieChart.vb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/instat/dlgBarAndPieChart.vb b/instat/dlgBarAndPieChart.vb index 1f66b112e1a..8c5851b2877 100644 --- a/instat/dlgBarAndPieChart.vb +++ b/instat/dlgBarAndPieChart.vb @@ -86,9 +86,7 @@ Public Class dlgBarAndPieChart ucrBarChartSelector.SetParameter(New RParameter("data", 0)) ucrBarChartSelector.SetParameterIsrfunction() - 'ucrVariablesAsFactorForBarChart.SetParameter(New RParameter("x", 0)) ucrVariablesAsFactorForBarChart.SetParameterIsString() - 'ucrVariablesAsFactorForBarChart.bWithQuotes = False ucrVariablesAsFactorForBarChart.Selector = ucrBarChartSelector ucrVariablesAsFactorForBarChart.SetFactorReceiver(ucrReceiverByFactor) ucrVariablesAsFactorForBarChart.strSelectorHeading = "Variables" @@ -97,8 +95,6 @@ Public Class dlgBarAndPieChart ucrReceiverX.Selector = ucrBarChartSelector ucrReceiverX.strSelectorHeading = "X Variable" - 'ucrReceiverX.SetParameter(New RParameter("x", 0)) - 'ucrReceiverX.bWithQuotes = False ucrReceiverX.SetParameterIsString() ucrReceiverByFactor.Selector = ucrBarChartSelector From 301f771f52e5926b01af72c523d96c10ca097661 Mon Sep 17 00:00:00 2001 From: Antoine Ntalumeso Date: Sat, 12 Jun 2021 10:56:05 +0200 Subject: [PATCH 14/40] Small design fix --- instat/dlgBarAndPieChart.resx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instat/dlgBarAndPieChart.resx b/instat/dlgBarAndPieChart.resx index 626a0d01613..c087f77da4b 100644 --- a/instat/dlgBarAndPieChart.resx +++ b/instat/dlgBarAndPieChart.resx @@ -367,7 +367,7 @@ 252, 313 - 92, 21 + 120, 21 11 @@ -469,7 +469,7 @@ 0 - 255, 226 + 252, 226 0, 0, 0, 0 From 811d2a78f87d2fc92beb3d78399b9d9b4f72c669 Mon Sep 17 00:00:00 2001 From: shadrack kibet Date: Sun, 13 Jun 2021 00:08:17 +0300 Subject: [PATCH 15/40] designer alignments --- instat/dlgInfill.Designer.vb | 4 +-- instat/dlgInfill.resx | 70 ++++++++++++++++++------------------ 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/instat/dlgInfill.Designer.vb b/instat/dlgInfill.Designer.vb index 7757af340fa..174bf730623 100644 --- a/instat/dlgInfill.Designer.vb +++ b/instat/dlgInfill.Designer.vb @@ -76,8 +76,8 @@ Partial Class dlgInfill ' 'grpOptions ' + Me.grpOptions.Controls.Add(Me.ucrDtpStartDate) Me.grpOptions.Controls.Add(Me.lblStartingFrom) - Me.grpOptions.Controls.Add(Me.ucrChkCompleteYears) Me.grpOptions.Controls.Add(Me.ucrChkResort) Me.grpOptions.Controls.Add(Me.ucrInputComboMonth) Me.grpOptions.Controls.Add(Me.ucrInputLimitOptions) @@ -85,7 +85,7 @@ Partial Class dlgInfill Me.grpOptions.Controls.Add(Me.lblLimits) Me.grpOptions.Controls.Add(Me.lblEndDate) Me.grpOptions.Controls.Add(Me.lblStartDate) - Me.grpOptions.Controls.Add(Me.ucrDtpStartDate) + Me.grpOptions.Controls.Add(Me.ucrChkCompleteYears) resources.ApplyResources(Me.grpOptions, "grpOptions") Me.grpOptions.Name = "grpOptions" Me.grpOptions.TabStop = False diff --git a/instat/dlgInfill.resx b/instat/dlgInfill.resx index 317c3d25371..63dce047960 100644 --- a/instat/dlgInfill.resx +++ b/instat/dlgInfill.resx @@ -210,6 +210,27 @@ 6 + + 71, 45 + + + 200, 20 + + + 27 + + + ucrDtpStartDate + + + instat.ucrDateTimePicker, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + grpOptions + + + 0 + True @@ -238,27 +259,6 @@ grpOptions - 0 - - - 16, 47 - - - 194, 20 - - - 34 - - - ucrChkCompleteYears - - - instat.ucrCheck, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - - - grpOptions - - 1 @@ -325,7 +325,7 @@ 4 - 70, 72 + 71, 72 200, 20 @@ -352,7 +352,7 @@ NoControl - 5, 76 + 12, 76 53, 13 @@ -405,25 +405,25 @@ 8 - - 77, 45 + + 16, 47 - - 200, 20 + + 194, 20 - - 27 + + 34 - - ucrDtpStartDate + + ucrChkCompleteYears - - instat.ucrDateTimePicker, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + instat.ucrCheck, instat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - + grpOptions - + 9 From 3a681a26cf4e411cf5dbe4cd9c03c6c616477ca8 Mon Sep 17 00:00:00 2001 From: shadrack kibet Date: Sun, 13 Jun 2021 00:09:11 +0300 Subject: [PATCH 16/40] added factor interactions check --- instat/static/InstatObject/R/data_object_R6.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/instat/static/InstatObject/R/data_object_R6.R b/instat/static/InstatObject/R/data_object_R6.R index bb65c8d0418..80b490e353d 100644 --- a/instat/static/InstatObject/R/data_object_R6.R +++ b/instat/static/InstatObject/R/data_object_R6.R @@ -2795,13 +2795,13 @@ DataSheet$set("public","infill_missing_dates", function(date_name, factors, star else { merge_required <- FALSE col_names_exp <- c() - factor_levels <- c() for(i in seq_along(factors)) { col_name <- factors[i] col_names_exp[[i]] <- lazyeval::interp(~ var, var = as.name(col_name)) - factor_levels[i] <- dplyr::n_distinct(self$get_columns_from_data(col_name, use_current_filter = FALSE)) } - if(!dplyr::n_distinct(factor_levels)==1) stop("All factors must have the same number of levels") + all_factors <- self$get_columns_from_data(factors, use_current_filter = FALSE) + first_factor <- self$get_columns_from_data(factors[1], use_current_filter = FALSE) + if(dplyr::n_distinct(interaction(all_factors, drop = TRUE))!= dplyr::n_distinct(first_factor)) stop("The multiple factor variables are not in sync. Should have same number of levels.") grouped_data <- self$get_data_frame(use_current_filter = FALSE) %>% dplyr::group_by_(.dots = col_names_exp) date_ranges <- grouped_data %>% dplyr::summarise_(.dots = setNames(list(lazyeval::interp(~ min(var), var = as.name(date_name)), lazyeval::interp(~ max(var), var = as.name(date_name))), c("min_date", "max_date"))) date_lengths <- grouped_data %>% dplyr::summarise(count = n()) From 6aa596cc68daba10f43a82a8c74cd1bcb70d1fe9 Mon Sep 17 00:00:00 2001 From: shadrack kibet Date: Sun, 13 Jun 2021 00:58:31 +0300 Subject: [PATCH 17/40] code refactor --- instat/dlgInfill.vb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/instat/dlgInfill.vb b/instat/dlgInfill.vb index 129669dd010..d6abebf8a55 100644 --- a/instat/dlgInfill.vb +++ b/instat/dlgInfill.vb @@ -119,11 +119,7 @@ Public Class dlgInfill End Sub Private Sub TestOkEnabled() - If Not (ucrReceiverDate.IsEmpty) Then - ucrBase.OKEnabled(True) - Else - ucrBase.OKEnabled(False) - End If + ucrBase.OKEnabled(Not ucrReceiverDate.IsEmpty) End Sub Private Sub ucrBase_ClickReset(sender As Object, e As EventArgs) Handles ucrBase.ClickReset @@ -132,7 +128,7 @@ Public Class dlgInfill TestOkEnabled() End Sub - Private Sub Controls_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrReceiverFactors.ControlContentsChanged, ucrReceiverDate.ControlContentsChanged + Private Sub Controls_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrReceiverDate.ControlContentsChanged TestOkEnabled() End Sub End Class \ No newline at end of file From 45b68eda6851aa41baba414d92b500c3a072096a Mon Sep 17 00:00:00 2001 From: shadrack kibet Date: Sun, 13 Jun 2021 11:05:50 +0300 Subject: [PATCH 18/40] passing start_date and end_date parameters manually --- instat/dlgInfill.vb | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/instat/dlgInfill.vb b/instat/dlgInfill.vb index d6abebf8a55..1adb0e4415a 100644 --- a/instat/dlgInfill.vb +++ b/instat/dlgInfill.vb @@ -83,19 +83,13 @@ Public Class dlgInfill ucrInputComboMonth.SetDropDownStyleAsNonEditable() ucrInputComboMonth.SetLinkedDisplayControl(lblStartingFrom) - ucrDtpStartDate.SetParameter(New RParameter("start_date", 3)) - ucrDtpStartDate.SetParameterIsRDate() - - ucrDtpEndDate.SetParameter(New RParameter("end_date", 4)) - ucrDtpEndDate.SetParameterIsRDate() - ucrChkCompleteYears.SetText("Ensure complete years") ucrChkCompleteYears.AddParameterPresentCondition(True, "start_month") ucrChkCompleteYears.AddParameterPresentCondition(False, "start_month", False) ucrInputLimitOptions.AddToLinkedControls(ucrChkCompleteYears, {"Data Limits"}, bNewLinkedHideIfParameterMissing:=True) - ucrInputLimitOptions.AddToLinkedControls(ucrDtpStartDate, {"Fixed Start Limit", "Fixed Limits"}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrInputLimitOptions.AddToLinkedControls(ucrDtpEndDate, {"Fixed End Limit", "Fixed Limits"}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrInputLimitOptions.AddToLinkedControls(ucrDtpStartDate, {"Fixed Start Limit", "Fixed Limits"}, bNewLinkedHideIfParameterMissing:=True) + ucrInputLimitOptions.AddToLinkedControls(ucrDtpEndDate, {"Fixed End Limit", "Fixed Limits"}, bNewLinkedHideIfParameterMissing:=True) ucrChkCompleteYears.AddToLinkedControls(ucrInputComboMonth, {True}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:="January") ucrDtpEndDate.SetLinkedDisplayControl(lblEndDate) ucrDtpStartDate.SetLinkedDisplayControl(lblStartDate) @@ -128,6 +122,22 @@ Public Class dlgInfill TestOkEnabled() End Sub + Private Sub ucrInputLimitOptions_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputLimitOptions.ControlValueChanged, ucrDtpStartDate.ControlValueChanged, ucrDtpEndDate.ControlValueChanged + If ucrInputLimitOptions.GetText = "Fixed Limits" Then + clsDefaultFunction.AddParameter("start_date", clsRFunctionParameter:=ucrDtpStartDate.ValueAsRDate, iPosition:=3) + clsDefaultFunction.AddParameter("end_date", clsRFunctionParameter:=ucrDtpEndDate.ValueAsRDate, iPosition:=4) + ElseIf ucrInputLimitOptions.GetText = "Fixed Start Limit" Then + clsDefaultFunction.RemoveParameterByName("end_date") + clsDefaultFunction.AddParameter("start_date", clsRFunctionParameter:=ucrDtpStartDate.ValueAsRDate, iPosition:=3) + ElseIf ucrInputLimitOptions.GetText = "Fixed End Limit" Then + clsDefaultFunction.RemoveParameterByName("start_date") + clsDefaultFunction.AddParameter("end_date", clsRFunctionParameter:=ucrDtpEndDate.ValueAsRDate, iPosition:=4) + Else + clsDefaultFunction.RemoveParameterByName("start_date") + clsDefaultFunction.RemoveParameterByName("end_date") + End If + End Sub + Private Sub Controls_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrReceiverDate.ControlContentsChanged TestOkEnabled() End Sub From 65a3d33b0f7a9191e44aeec0804667e90e1c0a38 Mon Sep 17 00:00:00 2001 From: Antoine Ntalumeso Date: Mon, 14 Jun 2021 11:06:37 +0200 Subject: [PATCH 19/40] small code change --- instat/dlgBarAndPieChart.vb | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/instat/dlgBarAndPieChart.vb b/instat/dlgBarAndPieChart.vb index 8c5851b2877..a2fab5c985d 100644 --- a/instat/dlgBarAndPieChart.vb +++ b/instat/dlgBarAndPieChart.vb @@ -247,19 +247,11 @@ Public Class dlgBarAndPieChart sdgLayerOptions.SetupLayer(clsNewGgPlot:=clsRggplotFunction, clsNewGeomFunc:=clsRgeomBarFunction, clsNewGlobalAesFunc:=clsBarAesFunction, clsNewLocalAes:=clsLocalRaesFunction, bFixGeom:=True, ucrNewBaseSelector:=ucrBarChartSelector, bApplyAesGlobally:=True, bReset:=bResetBarLayerSubdialog) sdgLayerOptions.ShowDialog() bResetBarLayerSubdialog = False - For Each clsParam In clsBarAesFunction.clsParameters - If clsParam.strArgumentName = "y" AndAlso (clsParam.strArgumentValue <> "value" OrElse ucrVariablesAsFactorForBarChart.bSingleVariable) Then - If clsParam.strArgumentValue = (Chr(34) & Chr(34)) Then - ucrVariablesAsFactorForBarChart.Clear() - Else ucrVariablesAsFactorForBarChart.Add(clsParam.strArgumentValue) - End If - ElseIf clsParam.strArgumentName = "x" AndAlso (clsParam.strArgumentValue <> "value" OrElse ucrVariablesAsFactorForBarChart.bSingleVariable) Then - If clsParam.strArgumentValue = (Chr(34) & Chr(34)) Then - ucrVariablesAsFactorForBarChart.Clear() - Else ucrVariablesAsFactorForBarChart.Add(clsParam.strArgumentValue) - End If - End If - Next + If clsBarAesFunction.ContainsParameter("x") Then + ucrVariablesAsFactorForBarChart.Add(clsBarAesFunction.GetParameter("x").strArgumentValue) + Else + ucrVariablesAsFactorForBarChart.Clear() + End If If clsBarAesFunction.ContainsParameter("fill") Then ucrReceiverByFactor.Add(clsBarAesFunction.GetParameter("fill").strArgumentValue) Else From 820e67e73c15c9b657a2065db4ab4f8705e21c28 Mon Sep 17 00:00:00 2001 From: Haward Ketoyo Date: Wed, 16 Jun 2021 10:12:56 +0300 Subject: [PATCH 20/40] Added three geoms: geom_density_ridges, geom_density_ridges2, geom_density_ridges_gradient to ucrGeom.vb --- instat/ucrGeom.vb | 55 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/instat/ucrGeom.vb b/instat/ucrGeom.vb index 56fd8c006df..1bf67eaea3d 100644 --- a/instat/ucrGeom.vb +++ b/instat/ucrGeom.vb @@ -291,6 +291,61 @@ Public Class ucrGeom lstAllGeoms.Add(clsgeom_statvalleys) + Dim clsgeom_density_ridges As New Geoms + + clsgeom_density_ridges.SetGeomPackage("ggridges") + clsgeom_density_ridges.strGeomName = "geom_density_ridges" + 'Mandatory Aesthetics + clsgeom_density_ridges.AddAesParameter("x", strIncludedDataTypes:={"numeric"}, bIsMandatory:=True) + clsgeom_density_ridges.AddAesParameter("y", strIncludedDataTypes:={"numeric", "factor"}, bIsMandatory:=True) + clsgeom_density_ridges.AddAesParameter("fill", strIncludedDataTypes:=({"factor", "numeric"})) + + 'adding layer parameters + clsgeom_density_ridges.AddLayerParameter("stat", "list", Chr(34) & "density_ridges" & Chr(34), lstParameterStrings:={Chr(34) & "density_ridges" & Chr(34), Chr(34) & "binline" & Chr(34)}) + clsgeom_density_ridges.AddLayerParameter("position", "list", Chr(34) & "points_sina" & Chr(34), lstParameterStrings:={Chr(34) & "points_sina" & Chr(34), Chr(34) & "points_jitter" & Chr(34), Chr(34) & "raincloud" & Chr(34)}) + clsgeom_density_ridges.AddLayerParameter("panel_scaling", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges.AddLayerParameter("show.legend", "list", "TRUE", lstParameterStrings:={"NA", "TRUE", "FALSE"}) + clsgeom_density_ridges.AddLayerParameter("inherit.aes", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + lstAllGeoms.Add(clsgeom_density_ridges) + + Dim clsgeom_density_ridges2 As New Geoms + + clsgeom_density_ridges2.SetGeomPackage("ggridges") + clsgeom_density_ridges2.strGeomName = "geom_density_ridges2" + 'Mandatory Aesthetics + clsgeom_density_ridges2.AddAesParameter("x", strIncludedDataTypes:={"numeric"}, bIsMandatory:=True) + clsgeom_density_ridges2.AddAesParameter("y", strIncludedDataTypes:={"numeric", "factor"}, bIsMandatory:=True) + clsgeom_density_ridges2.AddAesParameter("fill", strIncludedDataTypes:=({"factor", "numeric"})) + + 'adding layer parameters + clsgeom_density_ridges2.AddLayerParameter("stat", "list", Chr(34) & "density_ridges" & Chr(34), lstParameterStrings:={Chr(34) & "density_ridges" & Chr(34), Chr(34) & "binline" & Chr(34)}) + clsgeom_density_ridges2.AddLayerParameter("position", "list", Chr(34) & "points_sina" & Chr(34), lstParameterStrings:={Chr(34) & "points_sina" & Chr(34)}) + clsgeom_density_ridges2.AddLayerParameter("panel_scaling", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges2.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges2.AddLayerParameter("show.legend", "list", "TRUE", lstParameterStrings:={"NA", "TRUE", "FALSE"}) + clsgeom_density_ridges2.AddLayerParameter("inherit.aes", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + lstAllGeoms.Add(clsgeom_density_ridges2) + + Dim clsgeom_density_ridges_gradient As New Geoms + + clsgeom_density_ridges_gradient.SetGeomPackage("ggridges") + clsgeom_density_ridges_gradient.strGeomName = "geom_density_ridges_gradient" + 'Mandatory Aesthetics + clsgeom_density_ridges_gradient.AddAesParameter("x", strIncludedDataTypes:={"numeric"}, bIsMandatory:=True) + clsgeom_density_ridges_gradient.AddAesParameter("y", strIncludedDataTypes:={"numeric", "factor"}, bIsMandatory:=True) + clsgeom_density_ridges_gradient.AddAesParameter("fill", strIncludedDataTypes:=({"factor", "numeric"})) + + 'adding layer parameters + clsgeom_density_ridges_gradient.AddLayerParameter("stat", "list", Chr(34) & "density_ridges" & Chr(34), lstParameterStrings:={Chr(34) & "density_ridges" & Chr(34), Chr(34) & "binline" & Chr(34)}) + clsgeom_density_ridges_gradient.AddLayerParameter("position", "list", Chr(34) & "points_sina" & Chr(34), lstParameterStrings:={Chr(34) & "points_sina" & Chr(34)}) + clsgeom_density_ridges_gradient.AddLayerParameter("panel_scaling", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges_gradient.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges_gradient.AddLayerParameter("gradient_lwd", "numeric", "0.5", lstParameterStrings:={1, 0}) + clsgeom_density_ridges_gradient.AddLayerParameter("show.legend", "list", "TRUE", lstParameterStrings:={"NA", "TRUE", "FALSE"}) + clsgeom_density_ridges_gradient.AddLayerParameter("inherit.aes", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + lstAllGeoms.Add(clsgeom_density_ridges_gradient) + 'Global comments: 'WARNING: Most of the comments describing the parameters have been copied from the ggplot2 documentation: http://docs.ggplot2.org/current/ From 9f71c140960fe38a402d3ff0740f994e0003f328 Mon Sep 17 00:00:00 2001 From: Haward Ketoyo Date: Thu, 17 Jun 2021 15:12:53 +0300 Subject: [PATCH 21/40] Added additional Aesthetics parameters to geom_density_ridges, geom_density_ridge, geom_density_ridge_gradient and also added geome_ridgeline and geom_ridgeline_gradient --- instat/ucrGeom.vb | 235 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 179 insertions(+), 56 deletions(-) diff --git a/instat/ucrGeom.vb b/instat/ucrGeom.vb index 1bf67eaea3d..e0e2a4c1603 100644 --- a/instat/ucrGeom.vb +++ b/instat/ucrGeom.vb @@ -291,62 +291,6 @@ Public Class ucrGeom lstAllGeoms.Add(clsgeom_statvalleys) - Dim clsgeom_density_ridges As New Geoms - - clsgeom_density_ridges.SetGeomPackage("ggridges") - clsgeom_density_ridges.strGeomName = "geom_density_ridges" - 'Mandatory Aesthetics - clsgeom_density_ridges.AddAesParameter("x", strIncludedDataTypes:={"numeric"}, bIsMandatory:=True) - clsgeom_density_ridges.AddAesParameter("y", strIncludedDataTypes:={"numeric", "factor"}, bIsMandatory:=True) - clsgeom_density_ridges.AddAesParameter("fill", strIncludedDataTypes:=({"factor", "numeric"})) - - 'adding layer parameters - clsgeom_density_ridges.AddLayerParameter("stat", "list", Chr(34) & "density_ridges" & Chr(34), lstParameterStrings:={Chr(34) & "density_ridges" & Chr(34), Chr(34) & "binline" & Chr(34)}) - clsgeom_density_ridges.AddLayerParameter("position", "list", Chr(34) & "points_sina" & Chr(34), lstParameterStrings:={Chr(34) & "points_sina" & Chr(34), Chr(34) & "points_jitter" & Chr(34), Chr(34) & "raincloud" & Chr(34)}) - clsgeom_density_ridges.AddLayerParameter("panel_scaling", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) - clsgeom_density_ridges.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) - clsgeom_density_ridges.AddLayerParameter("show.legend", "list", "TRUE", lstParameterStrings:={"NA", "TRUE", "FALSE"}) - clsgeom_density_ridges.AddLayerParameter("inherit.aes", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) - lstAllGeoms.Add(clsgeom_density_ridges) - - Dim clsgeom_density_ridges2 As New Geoms - - clsgeom_density_ridges2.SetGeomPackage("ggridges") - clsgeom_density_ridges2.strGeomName = "geom_density_ridges2" - 'Mandatory Aesthetics - clsgeom_density_ridges2.AddAesParameter("x", strIncludedDataTypes:={"numeric"}, bIsMandatory:=True) - clsgeom_density_ridges2.AddAesParameter("y", strIncludedDataTypes:={"numeric", "factor"}, bIsMandatory:=True) - clsgeom_density_ridges2.AddAesParameter("fill", strIncludedDataTypes:=({"factor", "numeric"})) - - 'adding layer parameters - clsgeom_density_ridges2.AddLayerParameter("stat", "list", Chr(34) & "density_ridges" & Chr(34), lstParameterStrings:={Chr(34) & "density_ridges" & Chr(34), Chr(34) & "binline" & Chr(34)}) - clsgeom_density_ridges2.AddLayerParameter("position", "list", Chr(34) & "points_sina" & Chr(34), lstParameterStrings:={Chr(34) & "points_sina" & Chr(34)}) - clsgeom_density_ridges2.AddLayerParameter("panel_scaling", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) - clsgeom_density_ridges2.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) - clsgeom_density_ridges2.AddLayerParameter("show.legend", "list", "TRUE", lstParameterStrings:={"NA", "TRUE", "FALSE"}) - clsgeom_density_ridges2.AddLayerParameter("inherit.aes", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) - lstAllGeoms.Add(clsgeom_density_ridges2) - - Dim clsgeom_density_ridges_gradient As New Geoms - - clsgeom_density_ridges_gradient.SetGeomPackage("ggridges") - clsgeom_density_ridges_gradient.strGeomName = "geom_density_ridges_gradient" - 'Mandatory Aesthetics - clsgeom_density_ridges_gradient.AddAesParameter("x", strIncludedDataTypes:={"numeric"}, bIsMandatory:=True) - clsgeom_density_ridges_gradient.AddAesParameter("y", strIncludedDataTypes:={"numeric", "factor"}, bIsMandatory:=True) - clsgeom_density_ridges_gradient.AddAesParameter("fill", strIncludedDataTypes:=({"factor", "numeric"})) - - 'adding layer parameters - clsgeom_density_ridges_gradient.AddLayerParameter("stat", "list", Chr(34) & "density_ridges" & Chr(34), lstParameterStrings:={Chr(34) & "density_ridges" & Chr(34), Chr(34) & "binline" & Chr(34)}) - clsgeom_density_ridges_gradient.AddLayerParameter("position", "list", Chr(34) & "points_sina" & Chr(34), lstParameterStrings:={Chr(34) & "points_sina" & Chr(34)}) - clsgeom_density_ridges_gradient.AddLayerParameter("panel_scaling", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) - clsgeom_density_ridges_gradient.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) - clsgeom_density_ridges_gradient.AddLayerParameter("gradient_lwd", "numeric", "0.5", lstParameterStrings:={1, 0}) - clsgeom_density_ridges_gradient.AddLayerParameter("show.legend", "list", "TRUE", lstParameterStrings:={"NA", "TRUE", "FALSE"}) - clsgeom_density_ridges_gradient.AddLayerParameter("inherit.aes", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) - lstAllGeoms.Add(clsgeom_density_ridges_gradient) - - 'Global comments: 'WARNING: Most of the comments describing the parameters have been copied from the ggplot2 documentation: http://docs.ggplot2.org/current/ 'Warning: cannot use default values like NULL in the specification of our aesthetics as parameters (fill, colour, ...) as running a command like "ggplot(survey, aes(x="",y=Yield)) + geom_boxplot(colour = NULL)" will give an error (Error: Aesthetics must be either length 1 or the same as the data (4): colour). @@ -787,6 +731,114 @@ Public Class ucrGeom 'clsgeom_density2d.AddLayerParameter("linemitre", "numeric", "1") 'lstAllGeoms.Add(clsgeom_density_2d) + Dim clsgeom_density_ridges As New Geoms + + clsgeom_density_ridges.SetGeomPackage("ggridges") + clsgeom_density_ridges.strGeomName = "geom_density_ridges" + 'Mandatory Aesthetics + clsgeom_density_ridges.AddAesParameter("x", strIncludedDataTypes:={"numeric"}, bIsMandatory:=True) + clsgeom_density_ridges.AddAesParameter("y", strIncludedDataTypes:={"numeric", "factor"}, bIsMandatory:=True) + 'Other Aesthetics + clsgeom_density_ridges.AddAesParameter("height") + clsgeom_density_ridges.AddAesParameter("group") + clsgeom_density_ridges.AddAesParameter("scale") + clsgeom_density_ridges.AddAesParameter("min_height") + 'Aesthetics for colour, fill, group, alpha, linetype, Size, as in geom_ridgeline. + clsgeom_density_ridges.AddAesParameter("colour") + clsgeom_density_ridges.AddAesParameter("fill") + 'clsgeom_density_ridges.AddAesParameter("group") + clsgeom_density_ridges.AddAesParameter("alpha") + clsgeom_density_ridges.AddAesParameter("linetype") + 'clsgeom_density_ridges.AddAesParameter("Size") + 'Aesthetics for point_shape, point_colour, point_size, point_fill, point_alpha, point_stroke + 'clsgeom_density_ridges.AddAesParameter("point_shape") + clsgeom_density_ridges.AddAesParameter("point_colour") + 'clsgeom_density_ridges.AddAesParameter("point_size") + 'clsgeom_density_ridges.AddAesParameter("point_fill") + 'clsgeom_density_ridges.AddAesParameter("point_alpha") + 'clsgeom_density_ridges.AddAesParameter("point_stroke") + + 'adding layer parameters + clsgeom_density_ridges.AddLayerParameter("stat", "list", Chr(34) & "density_ridges" & Chr(34), lstParameterStrings:={Chr(34) & "density_ridges" & Chr(34), Chr(34) & "binline" & Chr(34)}) + clsgeom_density_ridges.AddLayerParameter("position", "list", Chr(34) & "points_sina" & Chr(34), lstParameterStrings:={Chr(34) & "points_sina" & Chr(34), Chr(34) & "points_jitter" & Chr(34), Chr(34) & "raincloud" & Chr(34)}) + clsgeom_density_ridges.AddLayerParameter("panel_scaling", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges.AddLayerParameter("show.legend", "list", "TRUE", lstParameterStrings:={"NA", "TRUE", "FALSE"}) + clsgeom_density_ridges.AddLayerParameter("inherit.aes", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + lstAllGeoms.Add(clsgeom_density_ridges) + + Dim clsgeom_density_ridges2 As New Geoms + + clsgeom_density_ridges2.SetGeomPackage("ggridges") + clsgeom_density_ridges2.strGeomName = "geom_density_ridges2" + 'Mandatory Aesthetics + clsgeom_density_ridges2.AddAesParameter("x", strIncludedDataTypes:={"numeric"}, bIsMandatory:=True) + clsgeom_density_ridges2.AddAesParameter("y", strIncludedDataTypes:={"numeric", "factor"}, bIsMandatory:=True) + clsgeom_density_ridges2.AddAesParameter("fill", strIncludedDataTypes:=({"factor", "numeric"})) + clsgeom_density_ridges2.AddAesParameter("height") + clsgeom_density_ridges2.AddAesParameter("group") + clsgeom_density_ridges2.AddAesParameter("scale") + clsgeom_density_ridges2.AddAesParameter("min_height") + 'Aesthetics for colour, fill, group, alpha, linetype, Size, as in geom_ridgeline. + clsgeom_density_ridges2.AddAesParameter("colour") + 'clsgeom_density_ridges2.AddAesParameter("group") + clsgeom_density_ridges2.AddAesParameter("alpha") + clsgeom_density_ridges2.AddAesParameter("linetype") + 'clsgeom_density_ridges2.AddAesParameter("Size") + 'Aesthetics for point_shape, point_colour, point_size, point_fill, point_alpha, point_stroke + 'clsgeom_density_ridges2.AddAesParameter("point_shape") + clsgeom_density_ridges2.AddAesParameter("point_colour") + 'clsgeom_density_ridges2.AddAesParameter("point_size") + 'clsgeom_density_ridges2.AddAesParameter("point_fill") + 'clsgeom_density_ridges2.AddAesParameter("point_alpha") + 'clsgeom_density_ridges2.AddAesParameter("point_stroke") + + 'adding layer parameters + clsgeom_density_ridges2.AddLayerParameter("stat", "list", Chr(34) & "density_ridges" & Chr(34), lstParameterStrings:={Chr(34) & "density_ridges" & Chr(34), Chr(34) & "binline" & Chr(34)}) + clsgeom_density_ridges2.AddLayerParameter("position", "list", Chr(34) & "points_sina" & Chr(34), lstParameterStrings:={Chr(34) & "points_sina" & Chr(34)}) + clsgeom_density_ridges2.AddLayerParameter("panel_scaling", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges2.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges2.AddLayerParameter("show.legend", "list", "TRUE", lstParameterStrings:={"NA", "TRUE", "FALSE"}) + clsgeom_density_ridges2.AddLayerParameter("inherit.aes", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + lstAllGeoms.Add(clsgeom_density_ridges2) + + Dim clsgeom_density_ridges_gradient As New Geoms + + clsgeom_density_ridges_gradient.SetGeomPackage("ggridges") + clsgeom_density_ridges_gradient.strGeomName = "geom_density_ridges_gradient" + 'Mandatory Aesthetics + clsgeom_density_ridges_gradient.AddAesParameter("x", strIncludedDataTypes:={"numeric"}, bIsMandatory:=True) + clsgeom_density_ridges_gradient.AddAesParameter("y", strIncludedDataTypes:={"numeric", "factor"}, bIsMandatory:=True) + 'Other Aesthetics + clsgeom_density_ridges_gradient.AddAesParameter("fill", strIncludedDataTypes:=({"factor", "numeric"})) + clsgeom_density_ridges_gradient.AddAesParameter("height") + clsgeom_density_ridges_gradient.AddAesParameter("group") + clsgeom_density_ridges_gradient.AddAesParameter("scale") + clsgeom_density_ridges_gradient.AddAesParameter("min_height") + 'Aesthetics for colour, fill, group, alpha, linetype, Size, as in geom_ridgeline. + clsgeom_density_ridges_gradient.AddAesParameter("colour") + 'clsgeom_density_ridges_gradient.AddAesParameter("group") + clsgeom_density_ridges_gradient.AddAesParameter("alpha") + clsgeom_density_ridges_gradient.AddAesParameter("linetype") + 'clsgeom_density_ridges_gradient.AddAesParameter("Size") + 'Aesthetics for point_shape, point_colour, point_size, point_fill, point_alpha, point_stroke + 'clsgeom_density_ridges_gradient.AddAesParameter("point_shape") + clsgeom_density_ridges_gradient.AddAesParameter("point_colour") + 'clsgeom_density_ridges_gradient.AddAesParameter("point_size") + 'clsgeom_density_ridges_gradient.AddAesParameter("point_fill") + 'clsgeom_density_ridges_gradient.AddAesParameter("point_alpha") + 'clsgeom_density_ridges_gradient.AddAesParameter("point_stroke") + + 'adding layer parameters + clsgeom_density_ridges_gradient.AddLayerParameter("stat", "list", Chr(34) & "density_ridges" & Chr(34), lstParameterStrings:={Chr(34) & "density_ridges" & Chr(34), Chr(34) & "binline" & Chr(34)}) + clsgeom_density_ridges_gradient.AddLayerParameter("position", "list", Chr(34) & "points_sina" & Chr(34), lstParameterStrings:={Chr(34) & "points_sina" & Chr(34)}) + clsgeom_density_ridges_gradient.AddLayerParameter("panel_scaling", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges_gradient.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_density_ridges_gradient.AddLayerParameter("gradient_lwd", "numeric", "0.5", lstParameterStrings:={1, 0}) + clsgeom_density_ridges_gradient.AddLayerParameter("show.legend", "list", "TRUE", lstParameterStrings:={"NA", "TRUE", "FALSE"}) + clsgeom_density_ridges_gradient.AddLayerParameter("inherit.aes", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + lstAllGeoms.Add(clsgeom_density_ridges_gradient) + clsgeom_dotplot.strGeomName = "geom_dotplot" 'Aesthetics parameters @@ -1419,6 +1471,77 @@ Public Class ucrGeom clsgeom_ribbon.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) lstAllGeoms.Add(clsgeom_ribbon) + Dim clsgeom_ridgeline As New Geoms + + clsgeom_ridgeline.SetGeomPackage("ggridges") + clsgeom_ridgeline.strGeomName = "geom_ridgeline" + 'Mandatory Aesthetics + clsgeom_ridgeline.AddAesParameter("x", strIncludedDataTypes:={"numeric"}, bIsMandatory:=True) + clsgeom_ridgeline.AddAesParameter("y", strIncludedDataTypes:={"numeric", "factor"}, bIsMandatory:=True) + 'Other Aesthetics + clsgeom_ridgeline.AddAesParameter("fill", strIncludedDataTypes:=({"factor", "numeric"})) + clsgeom_ridgeline.AddAesParameter("height") + clsgeom_ridgeline.AddAesParameter("group") + clsgeom_ridgeline.AddAesParameter("scale") + clsgeom_ridgeline.AddAesParameter("min_height") + 'Aesthetics for colour, fill, group, alpha, linetype, Size, as in geom_ridgeline. + clsgeom_ridgeline.AddAesParameter("colour") + 'clsgeom_ridgeline.AddAesParameter("group") + clsgeom_ridgeline.AddAesParameter("alpha") + clsgeom_ridgeline.AddAesParameter("linetype") + 'clsgeom_ridgeline.AddAesParameter("Size") + 'Aesthetics for point_shape, point_colour, point_size, point_fill, point_alpha, point_stroke + 'clsgeom_ridgeline.AddAesParameter("point_shape") + clsgeom_ridgeline.AddAesParameter("point_colour") + 'clsgeom_ridgeline.AddAesParameter("point_size") + 'clsgeom_ridgeline.AddAesParameter("point_fill") + 'clsgeom_ridgeline.AddAesParameter("point_alpha") + 'clsgeom_ridgeline.AddAesParameter("point_stroke") + + 'adding layer parameters + clsgeom_ridgeline.AddLayerParameter("stat", "list", Chr(34) & "identity" & Chr(34), lstParameterStrings:={Chr(34) & "identity" & Chr(34), Chr(34) & "density_ridges" & Chr(34), Chr(34) & "binline" & Chr(34)}) + clsgeom_ridgeline.AddLayerParameter("position", "list", Chr(34) & "identity" & Chr(34), lstParameterStrings:={Chr(34) & "identity" & Chr(34), Chr(34) & "points_sina" & Chr(34), Chr(34) & "points_jitter" & Chr(34), Chr(34) & "raincloud" & Chr(34)}) + clsgeom_ridgeline.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_ridgeline.AddLayerParameter("show.legend", "list", "TRUE", lstParameterStrings:={"NA", "TRUE", "FALSE"}) + clsgeom_ridgeline.AddLayerParameter("inherit.aes", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + lstAllGeoms.Add(clsgeom_ridgeline) + + Dim clsgeom_ridgeline_gradient As New Geoms + + clsgeom_ridgeline_gradient.SetGeomPackage("ggridges") + clsgeom_ridgeline_gradient.strGeomName = "geom_ridgeline_gradient" + 'Mandatory Aesthetics + clsgeom_ridgeline_gradient.AddAesParameter("x", strIncludedDataTypes:={"numeric"}, bIsMandatory:=True) + clsgeom_ridgeline_gradient.AddAesParameter("y", strIncludedDataTypes:={"numeric", "factor"}, bIsMandatory:=True) + 'Other Aesthetics + clsgeom_ridgeline_gradient.AddAesParameter("fill", strIncludedDataTypes:=({"factor", "numeric"})) + clsgeom_ridgeline_gradient.AddAesParameter("height") + clsgeom_ridgeline_gradient.AddAesParameter("group") + clsgeom_ridgeline_gradient.AddAesParameter("scale") + clsgeom_ridgeline_gradient.AddAesParameter("min_height") + 'Aesthetics for colour, fill, group, alpha, linetype, Size, as in geom_ridgeline. + clsgeom_ridgeline_gradient.AddAesParameter("colour") + 'clsgeom_ridgeline_gradient.AddAesParameter("group") + clsgeom_ridgeline_gradient.AddAesParameter("alpha") + clsgeom_ridgeline_gradient.AddAesParameter("linetype") + 'clsgeom_ridgeline_gradient.AddAesParameter("Size") + 'Aesthetics for point_shape, point_colour, point_size, point_fill, point_alpha, point_stroke + 'clsgeom_ridgeline_gradient.AddAesParameter("point_shape") + clsgeom_ridgeline_gradient.AddAesParameter("point_colour") + 'clsgeom_ridgeline_gradient.AddAesParameter("point_size") + 'clsgeom_ridgeline_gradient.AddAesParameter("point_fill") + 'clsgeom_ridgeline_gradient.AddAesParameter("point_alpha") + 'clsgeom_ridgeline_gradient.AddAesParameter("point_stroke") + + 'adding layer parameters + clsgeom_ridgeline_gradient.AddLayerParameter("stat", "list", Chr(34) & "identity" & Chr(34), lstParameterStrings:={Chr(34) & "identity" & Chr(34), Chr(34) & "density_ridges" & Chr(34), Chr(34) & "binline" & Chr(34)}) + clsgeom_ridgeline_gradient.AddLayerParameter("position", "list", Chr(34) & "identity" & Chr(34), lstParameterStrings:={Chr(34) & "identity" & Chr(34)}) + clsgeom_ridgeline_gradient.AddLayerParameter("na.rm", "list", "FALSE", lstParameterStrings:={"TRUE", "FALSE"}) + clsgeom_ridgeline_gradient.AddLayerParameter("gradient_lwd", "numeric", "0.5", lstParameterStrings:={1, 0}) + clsgeom_ridgeline_gradient.AddLayerParameter("show.legend", "list", "NA", lstParameterStrings:={"NA", "TRUE", "FALSE"}) + clsgeom_ridgeline_gradient.AddLayerParameter("inherit.aes", "list", "TRUE", lstParameterStrings:={"TRUE", "FALSE"}) + lstAllGeoms.Add(clsgeom_ridgeline_gradient) + clsgeom_rug.SetGeomName("geom_rug") clsgeom_rug.AddAesParameter("x", strIncludedDataTypes:={"factor", "numeric"}) clsgeom_rug.AddAesParameter("y", strIncludedDataTypes:={"factor", "numeric"}) From b7a2649eba3be3691f694ca3fe0aa58c9ebf3a24 Mon Sep 17 00:00:00 2001 From: lloyddewit Date: Sun, 20 Jun 2021 15:54:33 +0200 Subject: [PATCH 22/40] Added back Portuguese translations (accidentally removed in PR #6513) --- instat/translations/rInstatTranslations.db | Bin 4440064 -> 4587520 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/instat/translations/rInstatTranslations.db b/instat/translations/rInstatTranslations.db index c2eaa8e1cc4d52bca71e872999e09a5fea101798..645389bcab11cc63c2c238a0848570c4fb9b05c8 100644 GIT binary patch delta 251354 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 z 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

bJ^vnR*7 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 KO%i{Ne*Yi2eL!~r delta 166845 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 rM88- Date: Sun, 20 Jun 2021 15:59:02 +0200 Subject: [PATCH 23/40] Addded test data for 'View Last Graph' tool bar button tool tip. IMPORTANT - remove this test data before merging this branch into main. --- instat/translations/rInstatTranslations.db | Bin 4587520 -> 4587520 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/instat/translations/rInstatTranslations.db b/instat/translations/rInstatTranslations.db index 645389bcab11cc63c2c238a0848570c4fb9b05c8..5edf656996db741085ac0fe78c582b2292ad4f1a 100644 GIT binary patch delta 40070 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 Z<=eskh#rt0a#{0Y)n&5tR{kf3{|762gMt76 delta 26285 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�fo)BXV%lPGQ*Qg1E|VXH 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 DH Date: Sun, 20 Jun 2021 16:06:48 +0200 Subject: [PATCH 24/40] Ensured that the translation database contains all (and nothing but) the translations provided by CrowdIn, including the Portuguese translations. The test data used to test tool tip translation is not included in the translation database. --- instat/translations/rInstatTranslations.db | Bin 4587520 -> 4587520 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/instat/translations/rInstatTranslations.db b/instat/translations/rInstatTranslations.db index 5edf656996db741085ac0fe78c582b2292ad4f1a..f9cc46ce7c3f06b4646204eaff45b8a624459d7b 100644 GIT binary patch delta 493 zcmZY5OD_X)6vpA1`Hz{pt5%g3b*ZB2QpLCwMbo&2mGzm0hJ{9o*w*5tTN26G5z+Vr zGAq7-4}or2bYVqeQ?D(HCpr1$tlnJiQpv%YPY$2^m*ns%G098{lVDPrDws4Toyoye z$yCKu%~Zow%T&iy&(y%=WNKt`F}azV?#XleEb_u->n|Q5*NH=6icK*iLc)dUef2!a zeo2x>lqjwa&c05&??@gh!VB*Ya^v7QG4s!D9X;U@~rCX zPNlQ^8|GeSKXYtdUGxU^Sb0MA1yh!MXSl3SGt_2Z-54uE)xM>ne5qi-6imYm%t9RI zU>+7A0gJE%%XX=d^sb6EebUlDl9sByX>WF-As*MP=g*`gf~mH`&f$L}rn7$%9z(YK ID_L^<0DA}382|tP delta 475 zcmZY5JugFH7>9A^d5&}Hz4dZhS`@9Ss&{p~v{W?>sW6%E4unmRSZlb`*qDxu2=NKz zOndy>XLfTtTbsLyyWd_Y7Y%TO2U?*Gyx@a&=zvb}Ll<;I4+J0xy%2&v z2tz+aU;v^p2tzOoBQOeMFb)$Cv&+RvajR*c6;ZKe>E~ufRKD12=Vno{`i-fWK3&iuP*h pZ)r=_o!YCNbjIVF_3)l{ME%*ocLH-F|EB#3f$z9#H-Dr{jvr6k)C>Rs From 604c181412024ccc17540f0e7b477d6197d0e241 Mon Sep 17 00:00:00 2001 From: patowhiz Date: Mon, 21 Jun 2021 18:00:11 +0300 Subject: [PATCH 25/40] corrected the count summary --- instat/sdgClimaticDataEntry.vb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/instat/sdgClimaticDataEntry.vb b/instat/sdgClimaticDataEntry.vb index 32935f2587d..dc4948bd28b 100644 --- a/instat/sdgClimaticDataEntry.vb +++ b/instat/sdgClimaticDataEntry.vb @@ -633,6 +633,9 @@ Public Class sdgClimaticDataEntry strValue = grdCurrentWorkSheet.Item(row:=i, col:=iColIndex) End If + If strValue.ToUpper = "T" Then + strValue = 0 + End If If IsNumeric(strValue) Then dValue = Double.Parse(strValue) dSumValue = dSumValue + dValue From 438c8e5de74379b2052eae4cfb2f5d7acd5d21aa Mon Sep 17 00:00:00 2001 From: patowhiz Date: Mon, 21 Jun 2021 18:10:57 +0300 Subject: [PATCH 26/40] added comments --- instat/sdgClimaticDataEntry.vb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/instat/sdgClimaticDataEntry.vb b/instat/sdgClimaticDataEntry.vb index dc4948bd28b..3be28cc0870 100644 --- a/instat/sdgClimaticDataEntry.vb +++ b/instat/sdgClimaticDataEntry.vb @@ -106,6 +106,7 @@ Public Class sdgClimaticDataEntry If newValue = "" Then newValue = "NA" ElseIf bAllowTrace AndAlso newValue.ToUpper = "T" Then + 'assume trace values to be 0.03 (for R-Instat uses) here newValue = 0.03 ElseIf bTransform And IsNumeric(newValue) Then newValue = newValue * dTranformValue @@ -633,6 +634,7 @@ Public Class sdgClimaticDataEntry strValue = grdCurrentWorkSheet.Item(row:=i, col:=iColIndex) End If + 'assume trace values to be 0 (for data entry uses) here If strValue.ToUpper = "T" Then strValue = 0 End If From 2297bc96d0b78f33d8903eaa6a34cff8db97d367 Mon Sep 17 00:00:00 2001 From: patowhiz Date: Mon, 21 Jun 2021 18:11:20 +0300 Subject: [PATCH 27/40] formatted code --- instat/sdgClimaticDataEntry.vb | 1 + 1 file changed, 1 insertion(+) diff --git a/instat/sdgClimaticDataEntry.vb b/instat/sdgClimaticDataEntry.vb index 3be28cc0870..6a676144790 100644 --- a/instat/sdgClimaticDataEntry.vb +++ b/instat/sdgClimaticDataEntry.vb @@ -638,6 +638,7 @@ Public Class sdgClimaticDataEntry If strValue.ToUpper = "T" Then strValue = 0 End If + If IsNumeric(strValue) Then dValue = Double.Parse(strValue) dSumValue = dSumValue + dValue From 468fb5fbbb870bfb3699ef40bccf955d1bcd5db2 Mon Sep 17 00:00:00 2001 From: ivanluv Date: Tue, 22 Jun 2021 09:57:29 +0300 Subject: [PATCH 28/40] Adding swahili option to the languages --- instat/dlgOptions.vb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/instat/dlgOptions.vb b/instat/dlgOptions.vb index fe9c6db3047..0f7d47b046d 100644 --- a/instat/dlgOptions.vb +++ b/instat/dlgOptions.vb @@ -83,7 +83,7 @@ Public Class dlgOptions ucrPnlGraphDisplay.AddRadioButton(rdoDisplayinRViewer) ucrPnlGraphDisplay.AddRadioButton(rdoDisplayinSeparateWindows) ucrInputLanguage.SetLinkedDisplayControl(lblLanguage) - ucrInputLanguage.SetItems({"English", "French", "Portuguese"}) + ucrInputLanguage.SetItems({"English", "French", "Portuguese", "Kiswahili"}) ucrInputLanguage.SetDropDownStyleAsNonEditable() End Sub @@ -122,6 +122,8 @@ Public Class dlgOptions ucrInputLanguage.SetText("French") Case "pt-PT" ucrInputLanguage.SetText("Portuguese") + Case "sw-KE" + ucrInputLanguage.SetText("Kiswahili") End Select strPrevLanguageCulture = frmMain.clsInstatOptions.strLanguageCultureCode @@ -254,6 +256,8 @@ Public Class dlgOptions strCurrLanguageCulture = "fr-FR" Case "Portuguese" strCurrLanguageCulture = "pt-PT" + Case "Kiswahili" + strCurrLanguageCulture = "sw-KE" End Select ApplyEnabled(True) End Sub From 71892e20be56ef49274a1a472ed4300c47184571 Mon Sep 17 00:00:00 2001 From: patowhiz Date: Tue, 22 Jun 2021 12:22:35 +0300 Subject: [PATCH 29/40] added converting of lists to data frames --- instat/dlgFromLibrary.vb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/instat/dlgFromLibrary.vb b/instat/dlgFromLibrary.vb index 57bfcc63221..764ca736adb 100644 --- a/instat/dlgFromLibrary.vb +++ b/instat/dlgFromLibrary.vb @@ -260,7 +260,13 @@ Public Class dlgFromLibrary End If If strRClass = "list" Then - clsImportFunction.AddParameter("data_tables", strParameterValue:=strSelectedDataName) + 'some lists could be supplied in formats that R-Instat doesn't directly recognise as data frames + 'so always explicitly coerce the supplied list of data to type data.frame + Dim clsLApplyFunction As New RFunction + clsLApplyFunction.SetRCommand("lapply") + clsLApplyFunction.AddParameter("X", strParameterValue:=strSelectedDataName, iPosition:=0) + clsLApplyFunction.AddParameter("FUN", strParameterValue:="data.frame", iPosition:=1) + clsImportFunction.AddParameter("data_tables", clsRFunctionParameter:=clsLApplyFunction, iPosition:=0) Else Dim clsListFunction As New RFunction 'defines the list function. list(x=x) Dim clsListParameterFunction As New RFunction 'defines the function that act as list parameters e.g list(y=fortify.zoo(x)) From 2b550208a673fd3c99e02e607fc30f9e12c759cb Mon Sep 17 00:00:00 2001 From: patowhiz Date: Tue, 22 Jun 2021 16:24:07 +0300 Subject: [PATCH 30/40] fixed bugs --- instat/dlgImportDataset.vb | 56 ++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/instat/dlgImportDataset.vb b/instat/dlgImportDataset.vb index d6da5a51cfc..376774f80b0 100644 --- a/instat/dlgImportDataset.vb +++ b/instat/dlgImportDataset.vb @@ -11,9 +11,6 @@ Public Class dlgImportDataset ''' correctly encoded. ''' Private clsEnc2Native As RFunction - ' Functions for multi file import - Private clsLapply As RFunction - Private clsFileList As RFunction ' Functions for multi Excel sheet impoty Private clsImportExcelMulti As RFunction Private clsGetFilesList, clsImportMultipleFiles, clsImportMultipleTextFiles, clsFileNamesWithExt As RFunction @@ -35,7 +32,7 @@ Public Class dlgImportDataset Private bDialogLoaded As Boolean Private iDataFrameCount As Integer Private bMultiFiles As Boolean - + Private bFolder As Boolean = False Private strFileName As String Private bSupressCheckAllSheets As Boolean = False @@ -298,14 +295,11 @@ Public Class dlgImportDataset ucrPanelFixedWidthText.AddRadioButton(rdoSeparatortext) ucrPanelFixedWidthText.AddRadioButton(rdoFixedWidthText) ucrPanelFixedWidthText.AddRadioButton(rdoFixedWidthWhiteSpacesText) - ucrPanelFixedWidthText.AddFunctionNamesCondition(rdoSeparatortext, {"read_table", "read_table2", "lapply"}, bNewIsPositive:=False) - ucrPanelFixedWidthText.AddFunctionNamesCondition(rdoFixedWidthText, {"read_table", "lapply"}, bNewIsPositive:=True) - ucrPanelFixedWidthText.AddFunctionNamesCondition(rdoFixedWidthWhiteSpacesText, "read_table2", bNewIsPositive:=True) - 'ucrPanelFixedWidthText.AddParameterValueFunctionNamesCondition(rdoFixedWidthText, "FUN", "read_table", bNewIsPositive:=True) - 'ucrPanelFixedWidthText.AddParameterValueFunctionNamesCondition(rdoFixedWidthText, "FUN", "read_table2", bNewIsPositive:=False) - 'ucrPanelFixedWidthText.AddParameterValueFunctionNamesCondition(rdoFixedWidthWhiteSpacesText, "FUN", "read_table2", bNewIsPositive:=True) - 'ucrPanelFixedWidthText.AddParameterValueFunctionNamesCondition(rdoFixedWidthWhiteSpacesText, "FUN", "read_table", bNewIsPositive:=False) + 'todo. commented temporarily until we are able to add an OR condition for the panel; for multiple files function + 'ucrPanelFixedWidthText.AddFunctionNamesCondition(rdoSeparatortext, {"read_table", "read_table2"}, bNewIsPositive:=False) + 'ucrPanelFixedWidthText.AddFunctionNamesCondition(rdoFixedWidthText, {"read_table"}, bNewIsPositive:=True) + 'ucrPanelFixedWidthText.AddFunctionNamesCondition(rdoFixedWidthWhiteSpacesText, {"read_table2"}, bNewIsPositive:=True) ucrChkColumnNamesText.SetText("First Row is Column Headers") ucrChkColumnNamesText.SetParameter(New RParameter("col_names"), bNewChangeParameterValue:=True, bNewAddRemoveParameter:=True, strNewValueIfChecked:="TRUE", strNewValueIfUnchecked:="FALSE") @@ -340,10 +334,7 @@ Public Class dlgImportDataset clsRangeOperator = New ROperator clsEnc2Native = New RFunction - clsLapply = New RFunction - clsImportExcelMulti = New RFunction - clsFileList = New RFunction clsGetFilesList = New RFunction clsImportMultipleFiles = New RFunction @@ -381,15 +372,10 @@ Public Class dlgImportDataset 'special characters(e.g.accents) are correctly encoded clsGetExcelSheetNames.AddParameter("path", "", clsEnc2Native, Nothing, Nothing, True, 0) - clsLapply.SetRCommand("lappy") - clsLapply.AddParameter("X", clsRFunctionParameter:=clsFileList, iPosition:=0) - clsImportExcelMulti.SetPackageName("rio") clsImportExcelMulti.SetRCommand("import_list") clsImportExcelMulti.AddParameter("guess_max", "Inf", iPosition:=6) - clsFileList.SetRCommand("c") - clsImportRDS.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$import_RDS") 'commands for multiple files @@ -415,7 +401,6 @@ Public Class dlgImportDataset clsSetNames.AddParameter("object", clsRFunctionParameter:=clsGetFilesList, iPosition:=0) clsSetNames.AddParameter("nm", clsRFunctionParameter:=clsFileNamesWithoutExt, iPosition:=1) - 'clsImportMultipleTextFiles.SetPackageName("base") clsImportMultipleTextFiles.SetRCommand("lapply") clsImportMultipleTextFiles.AddParameter("X", clsRFunctionParameter:=clsSetNames, iPosition:=0) clsImportMultipleTextFiles.AddParameter("FUN", strParameterValue:="readr::read_table", iPosition:=1) @@ -447,6 +432,8 @@ Public Class dlgImportDataset GridPreviewVisible(False) ucrSaveFile.Hide() ucrChkMultipleFiles.Checked = False + 'todo. temporarily done this until when we can add OR conditions for the panel + rdoSeparatortext.Checked = True End Sub 'Private Sub ucrInputName_NameChanged() Handles ucrInputName.ControlValueChanged @@ -466,7 +453,7 @@ Public Class dlgImportDataset End Sub Private Sub TestOkEnabled() - If ucrChkMultipleFiles.Checked Then + If bFolder Then ucrBase.OKEnabled(GetDirectoryFiles(False).Count > 0) Else If (ucrSaveFile.IsComplete OrElse strFileType = "RDS") AndAlso bCanImport Then @@ -549,8 +536,10 @@ Public Class dlgImportDataset ucrSaveFile.AddAdditionalRCode(clsImportMultipleTextFiles, iAdditionalPairNo:=6) ucrSaveFile.SetRCode(clsImport, bReset) + 'todo. commented temporarily until we are able to add an OR condition for the panel 'Used by both text and csv functions - ucrPanelFixedWidthText.SetRCode(ucrBase.clsRsyntax.clsBaseFunction, bReset) + 'ucrPanelFixedWidthText.SetRCode(ucrBase.clsRsyntax.clsBaseFunction, bReset) + 'TEXT CONTROLS ucrChkColumnNamesText.SetRCode(clsImportFixedWidthText, bReset) ucrNudRowsToSkipText.SetRCode(clsImportFixedWidthText, bReset) @@ -634,8 +623,7 @@ Public Class dlgImportDataset End Sub Public Sub SetControlsFromFile(strFilePath As String, Optional strNewFileExt As String = "") - 'Dim strFileExt As String - Dim bFolder As Boolean = False + bFolder = False If strFilePath <> "" Then If bFromLibrary Then @@ -717,7 +705,7 @@ Public Class dlgImportDataset Else 'don't enable multiple files import for the following files only; .rds, .xlsx, .xls ucrChkMultipleFiles.SetVisible(Not (strFileExtension = ".rds" OrElse strFileExtension = ".xlsx" OrElse strFileExtension = ".xls")) - + ucrChkMultipleFiles.Checked = False 'TODO This needs to be different when RDS is a data frame 'need to be able to detect RDS as data.frame/Instat Object If strFileExtension = ".rds" Then @@ -803,7 +791,7 @@ Public Class dlgImportDataset strNewFileType = strFileType End If - If ucrChkMultipleFiles.Checked Then + If bFolder Then Dim lstFileNames As List(Of String) = GetDirectoryFiles(True) lblTextFilePreview.Text = If(lstFileNames.Count = 0, "No Files found", "Files found: " & lstFileNames.Count) txtTextFilePreview.Text = "" @@ -858,7 +846,7 @@ Public Class dlgImportDataset lblImportingSheets.Hide() lblImportingSheets.Text = "" bValid = False - If Not ucrChkMultipleFiles.Checked AndAlso {"TXT", "CSV", "XLSX", "XLS"}.Contains(strFileType) AndAlso Not ucrInputFilePath.IsEmpty() Then + If Not bFolder AndAlso {"TXT", "CSV", "XLSX", "XLS"}.Contains(strFileType) AndAlso Not ucrInputFilePath.IsEmpty() Then If strFileType = "TXT" Then If rdoSeparatortext.Checked Then 'for separator we use the function used for csv @@ -1013,9 +1001,9 @@ Public Class dlgImportDataset End Sub Private Sub ucrBase_ClickOk(sender As Object, e As EventArgs) Handles ucrBase.ClickOk - ' add the item to the MRU (Most Recently Used) list... - 'only add if its a file that was selected - If Not ucrChkMultipleFiles.Checked Then + 'add the item to the MRU (Most Recently Used) list... + 'only add if its a file that was selected, don't folder paths + If Not bFolder Then frmMain.clsRecentItems.addToMenu(strFilePathSystem) End If @@ -1061,7 +1049,9 @@ Public Class dlgImportDataset RefreshFrameView() End Sub - Private Sub UcrPanelFixedWidthText_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPanelFixedWidthText.ControlValueChanged + 'todo. This event could be changed to UcrPanelFixedWidthText_ControlValueChanged + 'when OR conditions are supported by ucrPanels + Private Sub UcrPanelFixedWidthText_RadiosChanged(sender As Object, e As EventArgs) Handles rdoSeparatortext.CheckedChanged, rdoFixedWidthText.CheckedChanged, rdoFixedWidthWhiteSpacesText.CheckedChanged If strFileType = "TXT" Then grpCSV.Visible = False grpText.Visible = False @@ -1073,7 +1063,7 @@ Public Class dlgImportDataset clsImportFixedWidthText.SetRCommand("read_table2") clsImportMultipleTextFiles.AddParameter("FUN", strParameterValue:="readr::read_table2", iPosition:=1) End If - If ucrChkMultipleFiles.Checked Then + If bFolder Then ucrBase.clsRsyntax.SetBaseRFunction(clsImportMultipleTextFiles) Else ucrBase.clsRsyntax.SetBaseRFunction(clsImportFixedWidthText) @@ -1082,7 +1072,7 @@ Public Class dlgImportDataset grpText.Visible = True RefreshFilePreview("TXT") ElseIf rdoSeparatortext.Checked Then - If ucrChkMultipleFiles.Checked Then + If bFolder Then ucrBase.clsRsyntax.SetBaseRFunction(clsImportMultipleFiles) Else ucrBase.clsRsyntax.SetBaseRFunction(clsImportCSV) From b8ad17ad9a5924ea3a411688f50fd15365fa2552 Mon Sep 17 00:00:00 2001 From: Shadrack Kibet Date: Tue, 22 Jun 2021 16:34:01 +0300 Subject: [PATCH 31/40] Update instat/dlgInfill.vb Co-authored-by: lloyddewit <57253949+lloyddewit@users.noreply.github.com> --- instat/dlgInfill.vb | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/instat/dlgInfill.vb b/instat/dlgInfill.vb index 1adb0e4415a..f1729f5636b 100644 --- a/instat/dlgInfill.vb +++ b/instat/dlgInfill.vb @@ -123,22 +123,17 @@ Public Class dlgInfill End Sub Private Sub ucrInputLimitOptions_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputLimitOptions.ControlValueChanged, ucrDtpStartDate.ControlValueChanged, ucrDtpEndDate.ControlValueChanged - If ucrInputLimitOptions.GetText = "Fixed Limits" Then - clsDefaultFunction.AddParameter("start_date", clsRFunctionParameter:=ucrDtpStartDate.ValueAsRDate, iPosition:=3) - clsDefaultFunction.AddParameter("end_date", clsRFunctionParameter:=ucrDtpEndDate.ValueAsRDate, iPosition:=4) - ElseIf ucrInputLimitOptions.GetText = "Fixed Start Limit" Then - clsDefaultFunction.RemoveParameterByName("end_date") - clsDefaultFunction.AddParameter("start_date", clsRFunctionParameter:=ucrDtpStartDate.ValueAsRDate, iPosition:=3) - ElseIf ucrInputLimitOptions.GetText = "Fixed End Limit" Then - clsDefaultFunction.RemoveParameterByName("start_date") - clsDefaultFunction.AddParameter("end_date", clsRFunctionParameter:=ucrDtpEndDate.ValueAsRDate, iPosition:=4) - Else - clsDefaultFunction.RemoveParameterByName("start_date") - clsDefaultFunction.RemoveParameterByName("end_date") - End If + clsDefaultFunction.RemoveParameterByName("start_date") + clsDefaultFunction.RemoveParameterByName("end_date") + Select Case ucrInputLimitOptions.GetText + Case "Fixed Limits", "Fixed Start Limit" + clsDefaultFunction.AddParameter("start_date", clsRFunctionParameter:=ucrDtpStartDate.ValueAsRDate, iPosition:=3) + Case "Fixed Limits", "Fixed End Limit" + clsDefaultFunction.AddParameter("end_date", clsRFunctionParameter:=ucrDtpEndDate.ValueAsRDate, iPosition:=4) + End Select End Sub Private Sub Controls_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrReceiverDate.ControlContentsChanged TestOkEnabled() End Sub -End Class \ No newline at end of file +End Class From 6c145e748fbcd0b1845e010afd9b8244140c9d1a Mon Sep 17 00:00:00 2001 From: ivanluv Date: Wed, 23 Jun 2021 10:18:08 +0300 Subject: [PATCH 32/40] Adding the tidyr package --- instat/static/InstatObject/R/Rsetup.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instat/static/InstatObject/R/Rsetup.R b/instat/static/InstatObject/R/Rsetup.R index 7e5cd80443d..064d78d1edb 100644 --- a/instat/static/InstatObject/R/Rsetup.R +++ b/instat/static/InstatObject/R/Rsetup.R @@ -197,7 +197,7 @@ load_R_Instat_packages <- function() { # wakefield because many functions do not work without loading (https://github.com/trinker/wakefield/issues/11) # latticeExtra because conditionalQuantile key positions work well when latticeExtra is loaded # texmex loaded because of extreme value distributions - packs_to_load <- c("plyr", "dplyr", "ggplot2", "ggthemes", "svglite", "ggfortify", "PCICt", "sp", "ggmosaic", "wakefield", "circular", "latticeExtra", "texmex") + packs_to_load <- c("plyr", "tidyr", "dplyr", "ggplot2", "ggthemes", "svglite", "ggfortify", "PCICt", "sp", "ggmosaic", "wakefield", "circular", "latticeExtra", "texmex") for(pack in packs_to_load) { try(library(pack, character.only = TRUE)) } From 220956650802dc1cf33b91edb2cd8a7f047a1d76 Mon Sep 17 00:00:00 2001 From: ivanluv Date: Wed, 23 Jun 2021 10:41:21 +0300 Subject: [PATCH 33/40] adding comment for the package addition --- instat/static/InstatObject/R/Rsetup.R | 1 + 1 file changed, 1 insertion(+) diff --git a/instat/static/InstatObject/R/Rsetup.R b/instat/static/InstatObject/R/Rsetup.R index 064d78d1edb..b4cf7fb591e 100644 --- a/instat/static/InstatObject/R/Rsetup.R +++ b/instat/static/InstatObject/R/Rsetup.R @@ -197,6 +197,7 @@ load_R_Instat_packages <- function() { # wakefield because many functions do not work without loading (https://github.com/trinker/wakefield/issues/11) # latticeExtra because conditionalQuantile key positions work well when latticeExtra is loaded # texmex loaded because of extreme value distributions + # tidyr is required by the unite function which is called in the mmtable2 package packs_to_load <- c("plyr", "tidyr", "dplyr", "ggplot2", "ggthemes", "svglite", "ggfortify", "PCICt", "sp", "ggmosaic", "wakefield", "circular", "latticeExtra", "texmex") for(pack in packs_to_load) { try(library(pack, character.only = TRUE)) From 911f88b1c799a8df1fb2f473be7b2a1877c65181 Mon Sep 17 00:00:00 2001 From: Shadrack Kibet Date: Wed, 23 Jun 2021 11:02:52 +0300 Subject: [PATCH 34/40] Update instat/static/InstatObject/R/Rsetup.R --- instat/static/InstatObject/R/Rsetup.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instat/static/InstatObject/R/Rsetup.R b/instat/static/InstatObject/R/Rsetup.R index b4cf7fb591e..1fefe29ce79 100644 --- a/instat/static/InstatObject/R/Rsetup.R +++ b/instat/static/InstatObject/R/Rsetup.R @@ -197,7 +197,7 @@ load_R_Instat_packages <- function() { # wakefield because many functions do not work without loading (https://github.com/trinker/wakefield/issues/11) # latticeExtra because conditionalQuantile key positions work well when latticeExtra is loaded # texmex loaded because of extreme value distributions - # tidyr is required by the unite function which is called in the mmtable2 package + # tidyr loaded because unite() function is required by mmtable() function from mmtable2 package packs_to_load <- c("plyr", "tidyr", "dplyr", "ggplot2", "ggthemes", "svglite", "ggfortify", "PCICt", "sp", "ggmosaic", "wakefield", "circular", "latticeExtra", "texmex") for(pack in packs_to_load) { try(library(pack, character.only = TRUE)) @@ -223,4 +223,4 @@ source("data_object_R6.R") source("labels_and_defaults.R") source("stand_alone_functions.R") files <- sort(dir(file.path(getwd(), 'Backend_Components/'), pattern=".R$", full.names = TRUE, recursive = TRUE)) -invisible(lapply(files, source, chdir = TRUE)) \ No newline at end of file +invisible(lapply(files, source, chdir = TRUE)) From 7313d259990544d33fe84dce5bb31ccb92951077 Mon Sep 17 00:00:00 2001 From: ivanluv Date: Thu, 24 Jun 2021 10:05:00 +0300 Subject: [PATCH 35/40] adding purr package --- instat/static/InstatObject/R/Rsetup.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/instat/static/InstatObject/R/Rsetup.R b/instat/static/InstatObject/R/Rsetup.R index 1fefe29ce79..4742933d422 100644 --- a/instat/static/InstatObject/R/Rsetup.R +++ b/instat/static/InstatObject/R/Rsetup.R @@ -198,7 +198,8 @@ load_R_Instat_packages <- function() { # latticeExtra because conditionalQuantile key positions work well when latticeExtra is loaded # texmex loaded because of extreme value distributions # tidyr loaded because unite() function is required by mmtable() function from mmtable2 package - packs_to_load <- c("plyr", "tidyr", "dplyr", "ggplot2", "ggthemes", "svglite", "ggfortify", "PCICt", "sp", "ggmosaic", "wakefield", "circular", "latticeExtra", "texmex") + # purrr loaded because its required by mmtable() function from mmtable2 package + packs_to_load <- c("purrr", "plyr", "tidyr", "dplyr", "ggplot2", "ggthemes", "svglite", "ggfortify", "PCICt", "sp", "ggmosaic", "wakefield", "circular", "latticeExtra", "texmex") for(pack in packs_to_load) { try(library(pack, character.only = TRUE)) } From fca48d6006ed6e19d4afe1d045c35a1878381ece Mon Sep 17 00:00:00 2001 From: ivanluv Date: Thu, 24 Jun 2021 14:37:52 +0300 Subject: [PATCH 36/40] minor additions --- instat/static/InstatObject/R/Rsetup.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instat/static/InstatObject/R/Rsetup.R b/instat/static/InstatObject/R/Rsetup.R index 4742933d422..b1cb1a65095 100644 --- a/instat/static/InstatObject/R/Rsetup.R +++ b/instat/static/InstatObject/R/Rsetup.R @@ -198,7 +198,7 @@ load_R_Instat_packages <- function() { # latticeExtra because conditionalQuantile key positions work well when latticeExtra is loaded # texmex loaded because of extreme value distributions # tidyr loaded because unite() function is required by mmtable() function from mmtable2 package - # purrr loaded because its required by mmtable() function from mmtable2 package + # purrr loaded because map_int() function is required by header_top_left() and header_left_top() functions from mmtable2 package packs_to_load <- c("purrr", "plyr", "tidyr", "dplyr", "ggplot2", "ggthemes", "svglite", "ggfortify", "PCICt", "sp", "ggmosaic", "wakefield", "circular", "latticeExtra", "texmex") for(pack in packs_to_load) { try(library(pack, character.only = TRUE)) From b5e02c51893a25de5da9a4fb9f322bb8ad75c0be Mon Sep 17 00:00:00 2001 From: ivanluv Date: Thu, 24 Jun 2021 16:30:00 +0300 Subject: [PATCH 37/40] minor change --- instat/static/InstatObject/R/Rsetup.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instat/static/InstatObject/R/Rsetup.R b/instat/static/InstatObject/R/Rsetup.R index b1cb1a65095..413c88693f4 100644 --- a/instat/static/InstatObject/R/Rsetup.R +++ b/instat/static/InstatObject/R/Rsetup.R @@ -198,7 +198,7 @@ load_R_Instat_packages <- function() { # latticeExtra because conditionalQuantile key positions work well when latticeExtra is loaded # texmex loaded because of extreme value distributions # tidyr loaded because unite() function is required by mmtable() function from mmtable2 package - # purrr loaded because map_int() function is required by header_top_left() and header_left_top() functions from mmtable2 package + # purrr loaded because map_int() function is required by mutatate() fuction from dplyr package packs_to_load <- c("purrr", "plyr", "tidyr", "dplyr", "ggplot2", "ggthemes", "svglite", "ggfortify", "PCICt", "sp", "ggmosaic", "wakefield", "circular", "latticeExtra", "texmex") for(pack in packs_to_load) { try(library(pack, character.only = TRUE)) From 3148ef5bbd38b9129f482ddf236d94010d4ede8f Mon Sep 17 00:00:00 2001 From: patowhiz Date: Thu, 24 Jun 2021 19:12:58 +0300 Subject: [PATCH 38/40] made suggested code changes --- instat/sdgClimaticDataEntry.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instat/sdgClimaticDataEntry.vb b/instat/sdgClimaticDataEntry.vb index 6a676144790..1d58e4ede47 100644 --- a/instat/sdgClimaticDataEntry.vb +++ b/instat/sdgClimaticDataEntry.vb @@ -636,7 +636,7 @@ Public Class sdgClimaticDataEntry 'assume trace values to be 0 (for data entry uses) here If strValue.ToUpper = "T" Then - strValue = 0 + strValue = "0" End If If IsNumeric(strValue) Then From a3cbefcaaf0ede976382034f3d2ed1796cc30868 Mon Sep 17 00:00:00 2001 From: Shadrack Kibet Date: Fri, 25 Jun 2021 14:26:30 +0300 Subject: [PATCH 39/40] Update instat/static/InstatObject/R/Rsetup.R --- instat/static/InstatObject/R/Rsetup.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instat/static/InstatObject/R/Rsetup.R b/instat/static/InstatObject/R/Rsetup.R index 413c88693f4..8720219b6b2 100644 --- a/instat/static/InstatObject/R/Rsetup.R +++ b/instat/static/InstatObject/R/Rsetup.R @@ -198,7 +198,7 @@ load_R_Instat_packages <- function() { # latticeExtra because conditionalQuantile key positions work well when latticeExtra is loaded # texmex loaded because of extreme value distributions # tidyr loaded because unite() function is required by mmtable() function from mmtable2 package - # purrr loaded because map_int() function is required by mutatate() fuction from dplyr package + # purrr loaded because map_int() is required by function(s) such as header_top_left() from mmtable2 package packs_to_load <- c("purrr", "plyr", "tidyr", "dplyr", "ggplot2", "ggthemes", "svglite", "ggfortify", "PCICt", "sp", "ggmosaic", "wakefield", "circular", "latticeExtra", "texmex") for(pack in packs_to_load) { try(library(pack, character.only = TRUE)) From 0a50945ca15d359f26dcb261ea52f104bd8c2717 Mon Sep 17 00:00:00 2001 From: lloyddewit <57253949+lloyddewit@users.noreply.github.com> Date: Sun, 27 Jun 2021 11:56:17 +0200 Subject: [PATCH 40/40] Update instat/dlgImportDataset.vb --- instat/dlgImportDataset.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instat/dlgImportDataset.vb b/instat/dlgImportDataset.vb index 376774f80b0..1959acb4669 100644 --- a/instat/dlgImportDataset.vb +++ b/instat/dlgImportDataset.vb @@ -1002,7 +1002,7 @@ Public Class dlgImportDataset Private Sub ucrBase_ClickOk(sender As Object, e As EventArgs) Handles ucrBase.ClickOk 'add the item to the MRU (Most Recently Used) list... - 'only add if its a file that was selected, don't folder paths + 'only add if its a file that was selected, don't add if folder path was selected If Not bFolder Then frmMain.clsRecentItems.addToMenu(strFilePathSystem) End If