diff --git a/inno_install_script_64bit.iss b/inno_install_script_64bit.iss index c2354f865aa..8499603c092 100644 --- a/inno_install_script_64bit.iss +++ b/inno_install_script_64bit.iss @@ -7,8 +7,8 @@ ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppVersion= {#GetStringFileInfo("instat\bin\x64\Release\instat.exe", "FileVersion")} AppId={{5455FC1A-85BE-4679-B600-8A1A4FC3CDD9-{#SetupSetting("AppVersion")}} -AppName=R-Instat -AppVerName ={code:GetShortAppVersion|{#SetupSetting("AppVersion")}} +AppName=R-Instat {#SetupSetting("AppVersion")} +AppVerName =R-Instat {#SetupSetting("AppVersion")} AppPublisher=African Maths Initiative AppPublisherURL=http://r-instat.org/ diff --git a/instat/Model/DataFrame/clsDataFrame.vb b/instat/Model/DataFrame/clsDataFrame.vb index c51d6d523f5..dc3de086525 100644 --- a/instat/Model/DataFrame/clsDataFrame.vb +++ b/instat/Model/DataFrame/clsDataFrame.vb @@ -181,6 +181,7 @@ Public Class clsDataFrame Else bRefreshed = False End If + _clsVisibleDataFramePage.HasDataChangedForAutoSave = True End If _clsColumnMetaData.RefreshData() Return bRefreshed diff --git a/instat/Model/DataFrame/clsDataFramePage.vb b/instat/Model/DataFrame/clsDataFramePage.vb index 062e2216a90..2dbf663ab1b 100644 --- a/instat/Model/DataFrame/clsDataFramePage.vb +++ b/instat/Model/DataFrame/clsDataFramePage.vb @@ -31,6 +31,7 @@ Public Class clsDataFramePage Private _lstColumns As List(Of clsColumnHeaderDisplay) Private _hasChanged As Boolean Private _useColumnSelectionInDataView As Boolean + Private _HasDataChangedForAutoSave As Boolean Private ReadOnly Property iColumnIncrements As Integer Get @@ -140,6 +141,19 @@ Public Class clsDataFramePage End Set End Property + ''' + ''' holds whether the dataframe is different from visual grid component and trigger auto save + ''' + ''' + Public Property HasDataChangedForAutoSave() As Boolean + Get + Return _HasDataChangedForAutoSave + End Get + Set(ByVal value As Boolean) + _HasDataChangedForAutoSave = value + End Set + End Property + ''' ''' Create a new instance of a dataframe page ''' @@ -152,6 +166,7 @@ Public Class clsDataFramePage _iColumnStart = 1 _iRowStart = 1 _hasChanged = True + _HasDataChangedForAutoSave = True _useColumnSelectionInDataView = True End Sub @@ -236,7 +251,7 @@ Public Class clsDataFramePage Dim strDisable As String = If(bDisable, "TRUE", "FALSE") clsEnableDisableUndoRFunction.AddParameter("disable_undo", strDisable) - _clsRLink.RunScript(clsEnableDisableUndoRFunction.ToScript) + _clsRLink.RunScript(clsEnableDisableUndoRFunction.ToScript, bSkipScriptAndOutput:=True) End Sub diff --git a/instat/Model/RCommand/clsPrepareFunctionsForGrids.vb b/instat/Model/RCommand/clsPrepareFunctionsForGrids.vb index a55ccc8b2aa..61c4d09ca69 100644 --- a/instat/Model/RCommand/clsPrepareFunctionsForGrids.vb +++ b/instat/Model/RCommand/clsPrepareFunctionsForGrids.vb @@ -184,7 +184,7 @@ Public Class clsPrepareFunctionsForGrids clsViewDataFrame.AddParameter("x", clsRFunctionParameter:=clsGetDataFrame) clsGetDataFrame.SetAssignTo(_strDataFrame) strTemp = clsViewDataFrame.ToScript(strScript) - _RLink.RunScript(strScript & strTemp, strComment:="Right click menu: View R Data Frame", bSeparateThread:=False) + _RLink.RunScript(strScript & strTemp, strComment:="Toolbar Option: View R Data Frame", bSeparateThread:=False) End Sub ''' ''' insert new rows diff --git a/instat/UserControl/ucrOutputPage.vb b/instat/UserControl/ucrOutputPage.vb index 6188b0e197a..65a46e275b5 100644 --- a/instat/UserControl/ucrOutputPage.vb +++ b/instat/UserControl/ucrOutputPage.vb @@ -187,7 +187,7 @@ Public Class ucrOutputPage End If 'if no contents added just exit sub - If richTextBox.TextLength = 0 Then + If String.IsNullOrWhiteSpace(richTextBox.Text) Then Exit Sub End If @@ -211,11 +211,10 @@ Public Class ucrOutputPage If frmMain.clsInstatOptions.bIncludeCommentDefault Then 'show comments only For Each line As clsRScriptElement In formattedRScript - If line.Type = RToken.TokenTypes.RComment Then + If line.Type = RToken.TokenTypes.RComment OrElse line.Type = RToken.TokenTypes.RNewLine Then AddFormatedTextToRichTextBox(richTextBox, line.Text, OutputFont.GetFontForScriptType(line.Type), OutputFont.GetColourForScriptType(line.Type)) End If Next - ElseIf frmMain.clsInstatOptions.bCommandsinOutput Then 'show command lines that are not comments For Each line As clsRScriptElement In formattedRScript diff --git a/instat/clsGgplotDefaults.vb b/instat/clsGgplotDefaults.vb index 6845476ca84..86240f369c5 100644 --- a/instat/clsGgplotDefaults.vb +++ b/instat/clsGgplotDefaults.vb @@ -67,7 +67,7 @@ Public Class GgplotDefaults Get Dim strTemp As String() 'TODO need to make proper functions and set package names - strTemp = {"theme_bw", "theme_linedraw", "theme_light", "theme_minimal", "theme_classic", "theme_dark", "theme_void", "theme_base", "theme_calc", "theme_economist", "theme_few", "theme_fivethirtyeight", "theme_foundation", "theme_grey", "theme_gdocs", "theme_igray", "theme_map", "theme_par", "theme_solarized", "theme_hc", "theme_pander", "theme_solid", "theme_stata", "theme_tufte", "theme_wsj"} + strTemp = {"theme_bw", "theme_linedraw", "theme_light", "theme_minimal", "theme_classic", "theme_dark", "theme_void", "theme_base", "theme_calc", "theme_economist", "theme_few", "theme_fivethirtyeight", "theme_foundation", "theme_grey", "theme_gdocs", "theme_igray", "theme_map", "theme_par", "theme_solarized", "theme_hc", "theme_pander", "theme_solid", "theme_stata", "theme_tufte", "theme_wsj", "theme_excel", "theme_excel_new", "theme_economist_white", "theme_solarized_2", "reset_theme_settings"} System.Array.Sort(Of String)(strTemp) Return strTemp End Get diff --git a/instat/clsRLink.vb b/instat/clsRLink.vb index 7b53ed13e85..a13f8ca8dbc 100644 --- a/instat/clsRLink.vb +++ b/instat/clsRLink.vb @@ -970,7 +970,8 @@ Public Class RLink Optional bSeparateThread As Boolean = True, Optional bShowWaitDialogOverride As Nullable(Of Boolean) = Nothing, Optional bUpdateGrids As Boolean = True, - Optional bSilent As Boolean = False) + Optional bSilent As Boolean = False, + Optional bSkipScriptAndOutput As Boolean = False) 'if there is no script to run then just ignore and exit sub If String.IsNullOrWhiteSpace(strScript) Then @@ -1043,8 +1044,10 @@ Public Class RLink End If End If - ' If strOutput is empty or does not contain valid HTML files, add strOutput itself as an output - clsOutputLogger.AddOutput(strScriptWithComment, strOutput, bAsFile, bDisplayOutputInExternalViewer) + If Not bSkipScriptAndOutput Then + ' If strOutput is empty or does not contain valid HTML files, add strOutput itself as an output + clsOutputLogger.AddOutput(strScriptWithComment, strOutput, bAsFile, bDisplayOutputInExternalViewer) + End If Catch e As Exception diff --git a/instat/dlgBarAndPieChart.Designer.vb b/instat/dlgBarAndPieChart.Designer.vb index 24dd99b55dd..31d85c91341 100644 --- a/instat/dlgBarAndPieChart.Designer.vb +++ b/instat/dlgBarAndPieChart.Designer.vb @@ -115,6 +115,8 @@ Partial Class dlgBarAndPieChart Me.lblFacetBy = New System.Windows.Forms.Label() Me.ucrInputLegendPosition = New instat.ucrInputComboBox() Me.ucrChkLegend = New instat.ucrCheck() + Me.ucrInputWidth = New instat.ucrInputTextBox() + Me.ucrChkBinWidth = New instat.ucrCheck() Me.contextMenuStripOptions.SuspendLayout() Me.SuspendLayout() ' @@ -906,12 +908,36 @@ Partial Class dlgBarAndPieChart Me.ucrChkLegend.Size = New System.Drawing.Size(98, 24) Me.ucrChkLegend.TabIndex = 72 ' + 'ucrInputWidth + ' + Me.ucrInputWidth.AddQuotesIfUnrecognised = True + Me.ucrInputWidth.AutoSize = True + Me.ucrInputWidth.IsMultiline = False + Me.ucrInputWidth.IsReadOnly = False + Me.ucrInputWidth.Location = New System.Drawing.Point(141, 270) + Me.ucrInputWidth.Margin = New System.Windows.Forms.Padding(9) + Me.ucrInputWidth.Name = "ucrInputWidth" + Me.ucrInputWidth.Size = New System.Drawing.Size(69, 21) + Me.ucrInputWidth.TabIndex = 91 + ' + 'ucrChkBinWidth + ' + Me.ucrChkBinWidth.AutoSize = True + Me.ucrChkBinWidth.Checked = False + Me.ucrChkBinWidth.Location = New System.Drawing.Point(12, 270) + Me.ucrChkBinWidth.Margin = New System.Windows.Forms.Padding(6) + Me.ucrChkBinWidth.Name = "ucrChkBinWidth" + Me.ucrChkBinWidth.Size = New System.Drawing.Size(144, 23) + Me.ucrChkBinWidth.TabIndex = 90 + ' 'dlgBarAndPieChart ' Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi Me.AutoSize = True Me.ClientSize = New System.Drawing.Size(415, 596) + Me.Controls.Add(Me.ucrInputWidth) + Me.Controls.Add(Me.ucrChkBinWidth) Me.Controls.Add(Me.ucrInputStation) Me.Controls.Add(Me.ucr1stFactorReceiver) Me.Controls.Add(Me.lblFacetBy) @@ -1067,4 +1093,6 @@ Partial Class dlgBarAndPieChart Friend WithEvents lblFacetBy As Label Friend WithEvents ucrInputLegendPosition As ucrInputComboBox Friend WithEvents ucrChkLegend As ucrCheck + Friend WithEvents ucrInputWidth As ucrInputTextBox + Friend WithEvents ucrChkBinWidth As ucrCheck End Class \ No newline at end of file diff --git a/instat/dlgBarAndPieChart.vb b/instat/dlgBarAndPieChart.vb index 4f7f6cc316e..df971c8e3f5 100644 --- a/instat/dlgBarAndPieChart.vb +++ b/instat/dlgBarAndPieChart.vb @@ -148,9 +148,9 @@ Public Class dlgBarAndPieChart ucrPnlOptions.AddFunctionNamesCondition(rdoTreeMap, {"geom_treemap", "geom_treemap_text"}) ucrPnlOptions.AddFunctionNamesCondition(rdoWordCloud, {"geom_text_wordcloud", "scale_size_area"}) - ucrPnlOptions.AddToLinkedControls({ucrChkFlipCoordinates, ucrChkPolarCoordinates, ucrReceiverByFactor, ucrInputBarChartPositions, ucrChkAddLabelsText, ucrVariablesAsFactorForBarChart, ucrChkBacktoback}, {rdoFrequency, rdoValue}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrPnlOptions.AddToLinkedControls({ucrChkFlipCoordinates, ucrChkPolarCoordinates, ucrReceiverByFactor, ucrInputBarChartPositions, ucrChkAddLabelsText, ucrVariablesAsFactorForBarChart, ucrChkBacktoback}, {rdoFrequency, rdoValue}, bNewLinkedHideIfParameterMissing:=True) ucrPnlOptions.AddToLinkedControls({ucrReceiverX, ucrChkReorderValue, ucrInputAddReorder, ucrChkLollipop}, {rdoValue}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrPnlOptions.AddToLinkedControls({ucrChkReorderFrequency, ucrInputAddReorder}, {rdoFrequency}, bNewLinkedHideIfParameterMissing:=True) + ucrPnlOptions.AddToLinkedControls({ucrChkReorderFrequency, ucrChkBinWidth, ucrInputAddReorder}, {rdoFrequency}, bNewLinkedHideIfParameterMissing:=True) ucrPnlOptions.AddToLinkedControls({ucrReceiverArea, ucrReceiverFill, ucrChkLayout, ucrChkStart, ucrChkAddLabelsTreemap}, {rdoTreeMap}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlOptions.AddToLinkedControls({ucrReceiverWordcloudAngle, ucrReceiverWordcloudColor, ucrReceiverWordcloudLabel, ucrReceiverWordcloudSize, ucrChkIncreaseSize}, {rdoWordCloud}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrReceiverByFactor.SetLinkedDisplayControl(lblByFactor) @@ -301,6 +301,12 @@ Public Class dlgBarAndPieChart ucrNudLollipopSize.Minimum = 1 ucrNudLollipopSize.Maximum = 15 + ucrChkBinWidth.SetText("Binwidth") + ucrChkBinWidth.AddToLinkedControls({ucrInputWidth}, {True}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=1.5) + + ucrInputWidth.SetParameter(New RParameter("binwidth", 3)) + ucrInputWidth.SetValidationTypeAsNumeric() + ucrChkLollipop.SetText("Lollipop") ucrChkLollipop.AddParameterPresentCondition(True, "geom_lollipop") ucrChkLollipop.AddParameterPresentCondition(False, "geom_lollipop", False) @@ -481,7 +487,6 @@ Public Class dlgBarAndPieChart clsRgeomBarFunction.SetPackageName("ggplot2") clsRgeomBarFunction.SetRCommand("geom_bar") clsRgeomBarFunction.AddParameter("position", Chr(34) & "stack" & Chr(34), iPosition:=0) - clsRgeomBarFunction.AddParameter("stat", Chr(34) & "count" & Chr(34), iPosition:=1) clsRggplotFunction.SetPackageName("ggplot2") clsRggplotFunction.SetRCommand("ggplot") @@ -641,6 +646,8 @@ Public Class dlgBarAndPieChart clsBaseOperator.SetAssignTo("last_graph", strTempDataframe:=ucrBarChartSelector.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strTempGraph:="last_graph") ucrBase.clsRsyntax.SetBaseROperator(clsBaseOperator) + HideShowWidth() + EnableDisablesOptions() End Sub Private Sub SetRCodeForControls(bReset As Boolean) @@ -679,12 +686,15 @@ Public Class dlgBarAndPieChart ucrChkReorderFrequency.SetRCode(clsDummyFunction, bReset) ucrChkLegend.SetRCode(clsThemeFunction, bReset, bCloneIfNeeded:=True) ucrInputLegendPosition.SetRCode(clsThemeFunction, bReset, bCloneIfNeeded:=True) + ucrInputWidth.SetRCode(clsRgeomBarFunction, bReset) If bReset Then ucrChkStart.SetRCode(clsGeomTreemapFunction, bReset) ucrChkLayout.SetRCode(clsGeomTreemapFunction, bReset) ucrChkIncreaseSize.SetRCode(clsScaleSizeAreaFunction, bReset) + ucrChkBinWidth.SetRCode(clsRgeomBarFunction, bReset) End If + HideShowWidth() End Sub Private Sub TestOkEnabled() @@ -816,6 +826,15 @@ Public Class dlgBarAndPieChart openSdgLayerOptions(clsGeomTextFunction, clsTextAesFunction) End Sub + Private Sub EnableDisablesOptions() + toolStripMenuItemBarchartOptions.Enabled = rdoFrequency.Checked OrElse rdoValue.Checked + toolStripMenuItemTextOptions.Enabled = ucrChkAddLabelsText.Checked AndAlso (rdoValue.Checked OrElse rdoFrequency.Checked) + toolStripMenuItemTreemapTextOptionsOptions.Enabled = ucrChkAddLabelsTreemap.Checked AndAlso rdoTreeMap.Checked + toolStripMenuItemWordcloudOptions.Enabled = rdoWordCloud.Checked AndAlso rdoWordCloud.Checked + toolStripMenuItemTreemapOptions.Enabled = rdoTreeMap.Checked + toolStripMenuItemLollipopOptions.Enabled = ucrChkLollipop.Checked AndAlso rdoValue.Checked + End Sub + Private Sub SetDialogOptions() If rdoValue.Checked Or rdoFrequency.Checked Then clsRggplotFunction.AddParameter("mapping", clsRFunctionParameter:=clsBarAesFunction, iPosition:=1) @@ -1264,7 +1283,11 @@ Public Class dlgBarAndPieChart ucrInputAddReorder.ControlValueChanged, ucrInputReorderValue.ControlValueChanged, ucrNudMaxSize.ControlValueChanged, ucrChkIncreaseSize.ControlValueChanged, ucrChkLollipop.ControlValueChanged SetDialogOptions() + EnableDisablesOptions() ChangeParameterName() + AddStatsParm() + HideShowWidth() + If rdoTreeMap.Checked Then ucrReceiverArea.SetMeAsReceiver() ElseIf rdoWordCloud.Checked Then @@ -1284,18 +1307,18 @@ Public Class dlgBarAndPieChart Private Sub ucrChkBacktoback_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkBacktoback.ControlValueChanged, ucrVariablesAsFactorForBarChart.ControlValueChanged, ucrReceiverX.ControlValueChanged, ucrPnlOptions.ControlValueChanged + clsBaseOperator.RemoveParameterByName("geom_bar1") + clsBaseOperator.RemoveParameterByName("geom_bar2") + clsBaseOperator.RemoveParameterByName("scale_y_symmetric") + clsAesFunction1.RemoveParameterByName("y") + clsAesFunction2.RemoveParameterByName("y") + clsRgeomBarFunction2.RemoveParameterByName("aes") + clsRgeomBarFunction1.RemoveParameterByName("aes") + clsRggplotFunction.RemoveParameterByName("aes") If rdoFrequency.Checked OrElse rdoValue.Checked Then - clsBaseOperator.RemoveParameterByName("geom_bar1") - clsBaseOperator.RemoveParameterByName("geom_bar2") - clsBaseOperator.RemoveParameterByName("scale_y_symmetric") - clsAesFunction1.RemoveParameterByName("y") - clsAesFunction2.RemoveParameterByName("y") - clsRgeomBarFunction2.RemoveParameterByName("aes") - clsRgeomBarFunction1.RemoveParameterByName("aes") ucrChkPolarCoordinates.Enabled = True clsBaseOperator.AddParameter("geom_bar", clsRFunctionParameter:=clsRgeomBarFunction, iPosition:=2) clsRggplotFunction.AddParameter("mapping", clsRFunctionParameter:=clsBarAesFunction, iPosition:=1) - clsRggplotFunction.RemoveParameterByName("aes") If ucrChkBacktoback.Checked Then ucrChkPolarCoordinates.Enabled = False ucrChkPolarCoordinates.Checked = Not ucrChkBacktoback.Checked @@ -1317,9 +1340,14 @@ Public Class dlgBarAndPieChart clsRgeomBarFunction1.AddParameter("aes", clsRFunctionParameter:=clsAesFunction1, iPosition:=1, bIncludeArgumentName:=False) End If End If + Else + clsBaseOperator.RemoveParameterByName("geom_bar") + clsRggplotFunction.RemoveParameterByName("mapping") End If ChangeParameterName() SetGeomTextOptions() + HideShowWidth() + AddStatsParm() End Sub Private Sub ucrChkPolarCoordinates_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkPolarCoordinates.ControlValueChanged, ucrPnlPolar.ControlValueChanged, @@ -1390,10 +1418,40 @@ Public Class dlgBarAndPieChart End Sub Private Sub ucrChkAddLabelsTreemap_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkAddLabelsTreemap.ControlValueChanged + EnableDisablesOptions() If ucrChkAddLabelsTreemap.Checked Then clsBaseOperator.AddParameter("geom_treemap_text", clsRFunctionParameter:=clsGeomTreemapTextFunction, iPosition:=3) Else clsBaseOperator.RemoveParameterByName("geom_treemap_text") End If End Sub + + Private Sub ucrChkBinWidth_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkBinWidth.ControlValueChanged, ucrInputWidth.ControlValueChanged, ucrVariablesAsFactorForBarChart.ControlValueChanged + If ucrChkBinWidth.Checked AndAlso ucrVariablesAsFactorForBarChart.ucrSingleVariable.strCurrDataType = "numeric" Then + clsRgeomBarFunction.AddParameter("binwidth", ucrInputWidth.GetText, iPosition:=4) + Else + clsRgeomBarFunction.RemoveParameterByName("binwidth") + End If + AddStatsParm() + HideShowWidth() + End Sub + + Private Sub HideShowWidth() + If rdoFrequency.Checked AndAlso (Not ucrVariablesAsFactorForBarChart.IsEmpty AndAlso ucrVariablesAsFactorForBarChart.ucrSingleVariable.strCurrDataType = "numeric") Then + ucrChkBinWidth.Visible = True + ucrInputWidth.Visible = ucrChkBinWidth.Checked + Else + ucrChkBinWidth.Visible = False + ucrInputWidth.Visible = False + End If + End Sub + + Private Sub AddStatsParm() + If rdoFrequency.Checked AndAlso ucrChkBinWidth.Checked AndAlso ucrVariablesAsFactorForBarChart.ucrSingleVariable.strCurrDataType = "numeric" Then + clsRgeomBarFunction.AddParameter("stat", Chr(34) & "bin" & Chr(34), iPosition:=1) + Else + clsRgeomBarFunction.AddParameter("stat", Chr(34) & "count" & Chr(34), iPosition:=1) + End If + End Sub + End Class \ No newline at end of file diff --git a/instat/dlgCalculator.vb b/instat/dlgCalculator.vb index c7eee20e0ad..31c557a35fd 100644 --- a/instat/dlgCalculator.vb +++ b/instat/dlgCalculator.vb @@ -122,10 +122,8 @@ Public Class dlgCalculator clsDetachScalarsFunction.AddParameter("unload", "TRUE") ucrBase.clsRsyntax.AddToBeforeCodes(clsAttachFunction, 0) - ucrBase.clsRsyntax.AddToBeforeCodes(clsAttachScalarsFunction, 1) ucrBase.clsRsyntax.AddToAfterCodes(clsDetachFunction, 1) - ucrBase.clsRsyntax.AddToAfterCodes(clsDetachScalarsFunction, 2) ucrBase.clsRsyntax.SetCommandString("") @@ -204,7 +202,11 @@ Public Class dlgCalculator Dim strResut As String = ucrCalc.ucrSaveResultInto.GetText clsAddScalarFunction.AddParameter("scalar_name", Chr(34) & strResut & Chr(34), iPosition:=1) clsAddScalarFunction.AddParameter("scalar_value", strResut, iPosition:=2) + clsAddScalarFunction.AddParameter("data_name", Chr(34) & dataFrameName & Chr(34), iPosition:=0) + clsScalarsDataFuntion.AddParameter("data_name", Chr(34) & dataFrameName & Chr(34), iPosition:=0) ucrBase.clsRsyntax.AddToAfterCodes(clsAddScalarFunction, 0) + ucrBase.clsRsyntax.AddToBeforeCodes(clsAttachScalarsFunction, 1) + ucrBase.clsRsyntax.AddToAfterCodes(clsDetachScalarsFunction, 2) ucrBase.clsRsyntax.SetAssignTo(strResut) ucrCalc.ucrSaveResultInto.btnColumnPosition.Enabled = False ucrCalc.ucrSaveResultInto.btnColumnPosition.Visible = True @@ -212,14 +214,22 @@ Public Class dlgCalculator ucrCalc.ucrSaveResultInto.ucrChkSave.Enabled = False ucrCalc.ucrSaveResultInto.ucrInputComboSave.Visible = True ucrCalc.ucrSaveResultInto.ucrInputComboSave.Enabled = True + ElseIf ucrCalc.ucrSelectorForCalculations.checkBoxScalar.Checked Then + Dim strResut As String = ucrCalc.ucrSaveResultInto.GetText + clsAddScalarFunction.AddParameter("data_name", Chr(34) & dataFrameName & Chr(34), iPosition:=0) + clsScalarsDataFuntion.AddParameter("data_name", Chr(34) & dataFrameName & Chr(34), iPosition:=0) + ucrBase.clsRsyntax.AddToAfterCodes(clsAddScalarFunction, 0) + ucrBase.clsRsyntax.AddToBeforeCodes(clsAttachScalarsFunction, 1) + ucrBase.clsRsyntax.AddToAfterCodes(clsDetachScalarsFunction, 2) Else ucrBase.clsRsyntax.RemoveFromAfterCodes(clsAddScalarFunction) + ucrBase.clsRsyntax.RemoveFromBeforeCodes(clsAttachScalarsFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsDetachScalarsFunction) ucrCalc.ucrSaveResultInto.btnColumnPosition.Enabled = True ucrCalc.ucrSaveResultInto.btnColumnPosition.Visible = True ucrCalc.ucrSaveResultInto.ucrChkSave.Enabled = True ucrCalc.ucrSaveResultInto.ucrInputComboSave.Visible = True ucrCalc.ucrSaveResultInto.ucrInputComboSave.Enabled = True - End If ' Update command string and clear input try message name @@ -253,7 +263,6 @@ Public Class dlgCalculator ucrBase.clsRsyntax.AddToBeforeCodes(clsAttachScalarsFunction, 1) ucrBase.clsRsyntax.AddToAfterCodes(clsDetachFunction, 1) - ucrBase.clsRsyntax.AddToAfterCodes(clsDetachScalarsFunction, 2) ucrCalc.ucrSaveResultInto.Enabled = True ucrCalc.ucrChkStoreScalar.Visible = True Else diff --git a/instat/dlgClimaticLengthOfSeason.Designer.vb b/instat/dlgClimaticLengthOfSeason.Designer.vb index 25c8f8d3eee..e245d05139b 100644 --- a/instat/dlgClimaticLengthOfSeason.Designer.vb +++ b/instat/dlgClimaticLengthOfSeason.Designer.vb @@ -36,6 +36,8 @@ Partial Class dlgClimaticLengthOfSeason Me.ucrReceiverStartofRains = New instat.ucrReceiverSingle() Me.ucrSelectorLengthofSeason = New instat.ucrSelectorByDataFrameAddRemove() Me.ucrBase = New instat.ucrButtons() + Me.ucrChkLengthmore = New instat.ucrCheck() + Me.ucrNudLenghtmore = New instat.ucrNud() Me.SuspendLayout() ' 'lblStartofRains @@ -50,16 +52,16 @@ Partial Class dlgClimaticLengthOfSeason 'lblStartofRainsLogical ' Me.lblStartofRainsLogical.AutoSize = True - Me.lblStartofRainsLogical.Location = New System.Drawing.Point(281, 86) + Me.lblStartofRainsLogical.Location = New System.Drawing.Point(281, 75) Me.lblStartofRainsLogical.Name = "lblStartofRainsLogical" - Me.lblStartofRainsLogical.Size = New System.Drawing.Size(44, 13) + Me.lblStartofRainsLogical.Size = New System.Drawing.Size(80, 13) Me.lblStartofRainsLogical.TabIndex = 3 - Me.lblStartofRainsLogical.Text = "Start(L):" + Me.lblStartofRainsLogical.Text = "Start Status (L):" ' 'lblEndofRains ' Me.lblEndofRains.AutoSize = True - Me.lblEndofRains.Location = New System.Drawing.Point(280, 136) + Me.lblEndofRains.Location = New System.Drawing.Point(280, 120) Me.lblEndofRains.Name = "lblEndofRains" Me.lblEndofRains.Size = New System.Drawing.Size(29, 13) Me.lblEndofRains.TabIndex = 5 @@ -68,17 +70,17 @@ Partial Class dlgClimaticLengthOfSeason 'lblEndofRainsLogical ' Me.lblEndofRainsLogical.AutoSize = True - Me.lblEndofRainsLogical.Location = New System.Drawing.Point(280, 182) + Me.lblEndofRainsLogical.Location = New System.Drawing.Point(280, 166) Me.lblEndofRainsLogical.Name = "lblEndofRainsLogical" - Me.lblEndofRainsLogical.Size = New System.Drawing.Size(41, 13) + Me.lblEndofRainsLogical.Size = New System.Drawing.Size(77, 13) Me.lblEndofRainsLogical.TabIndex = 7 - Me.lblEndofRainsLogical.Text = "End(L):" + Me.lblEndofRainsLogical.Text = "End Status (L):" ' 'ucrChkType ' Me.ucrChkType.AutoSize = True Me.ucrChkType.Checked = False - Me.ucrChkType.Location = New System.Drawing.Point(5, 279) + Me.ucrChkType.Location = New System.Drawing.Point(5, 260) Me.ucrChkType.Name = "ucrChkType" Me.ucrChkType.Size = New System.Drawing.Size(87, 23) Me.ucrChkType.TabIndex = 11 @@ -87,7 +89,7 @@ Partial Class dlgClimaticLengthOfSeason ' Me.ucrChkLengthofSeason.AutoSize = True Me.ucrChkLengthofSeason.Checked = False - Me.ucrChkLengthofSeason.Location = New System.Drawing.Point(5, 247) + Me.ucrChkLengthofSeason.Location = New System.Drawing.Point(5, 228) Me.ucrChkLengthofSeason.Name = "ucrChkLengthofSeason" Me.ucrChkLengthofSeason.Size = New System.Drawing.Size(143, 23) Me.ucrChkLengthofSeason.TabIndex = 9 @@ -98,7 +100,7 @@ Partial Class dlgClimaticLengthOfSeason Me.ucrInputTextType.AutoSize = True Me.ucrInputTextType.IsMultiline = False Me.ucrInputTextType.IsReadOnly = False - Me.ucrInputTextType.Location = New System.Drawing.Point(149, 278) + Me.ucrInputTextType.Location = New System.Drawing.Point(149, 259) Me.ucrInputTextType.Name = "ucrInputTextType" Me.ucrInputTextType.Size = New System.Drawing.Size(137, 21) Me.ucrInputTextType.TabIndex = 12 @@ -109,7 +111,7 @@ Partial Class dlgClimaticLengthOfSeason Me.ucrInputLengthofSeason.AutoSize = True Me.ucrInputLengthofSeason.IsMultiline = False Me.ucrInputLengthofSeason.IsReadOnly = False - Me.ucrInputLengthofSeason.Location = New System.Drawing.Point(149, 246) + Me.ucrInputLengthofSeason.Location = New System.Drawing.Point(149, 227) Me.ucrInputLengthofSeason.Name = "ucrInputLengthofSeason" Me.ucrInputLengthofSeason.Size = New System.Drawing.Size(137, 21) Me.ucrInputLengthofSeason.TabIndex = 10 @@ -118,7 +120,7 @@ Partial Class dlgClimaticLengthOfSeason ' Me.ucrReceiverStartofRainsLogical.AutoSize = True Me.ucrReceiverStartofRainsLogical.frmParent = Me - Me.ucrReceiverStartofRainsLogical.Location = New System.Drawing.Point(283, 103) + Me.ucrReceiverStartofRainsLogical.Location = New System.Drawing.Point(283, 92) Me.ucrReceiverStartofRainsLogical.Margin = New System.Windows.Forms.Padding(0) Me.ucrReceiverStartofRainsLogical.Name = "ucrReceiverStartofRainsLogical" Me.ucrReceiverStartofRainsLogical.Selector = Nothing @@ -131,7 +133,7 @@ Partial Class dlgClimaticLengthOfSeason ' Me.ucrReceiverEndofRainsLogical.AutoSize = True Me.ucrReceiverEndofRainsLogical.frmParent = Me - Me.ucrReceiverEndofRainsLogical.Location = New System.Drawing.Point(283, 198) + Me.ucrReceiverEndofRainsLogical.Location = New System.Drawing.Point(283, 182) Me.ucrReceiverEndofRainsLogical.Margin = New System.Windows.Forms.Padding(0) Me.ucrReceiverEndofRainsLogical.Name = "ucrReceiverEndofRainsLogical" Me.ucrReceiverEndofRainsLogical.Selector = Nothing @@ -144,7 +146,7 @@ Partial Class dlgClimaticLengthOfSeason ' Me.ucrReceiverEndofRains.AutoSize = True Me.ucrReceiverEndofRains.frmParent = Me - Me.ucrReceiverEndofRains.Location = New System.Drawing.Point(283, 152) + Me.ucrReceiverEndofRains.Location = New System.Drawing.Point(283, 136) Me.ucrReceiverEndofRains.Margin = New System.Windows.Forms.Padding(0) Me.ucrReceiverEndofRains.Name = "ucrReceiverEndofRains" Me.ucrReceiverEndofRains.Selector = Nothing @@ -182,17 +184,41 @@ Partial Class dlgClimaticLengthOfSeason ' Me.ucrBase.AutoSize = True Me.ucrBase.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrBase.Location = New System.Drawing.Point(5, 311) + Me.ucrBase.Location = New System.Drawing.Point(5, 328) Me.ucrBase.Name = "ucrBase" Me.ucrBase.Size = New System.Drawing.Size(408, 52) Me.ucrBase.TabIndex = 13 ' + 'ucrChkLengthmore + ' + Me.ucrChkLengthmore.AutoSize = True + Me.ucrChkLengthmore.Checked = False + Me.ucrChkLengthmore.Location = New System.Drawing.Point(5, 293) + Me.ucrChkLengthmore.Name = "ucrChkLengthmore" + Me.ucrChkLengthmore.Size = New System.Drawing.Size(143, 23) + Me.ucrChkLengthmore.TabIndex = 14 + ' + 'ucrNudLenghtmore + ' + Me.ucrNudLenghtmore.AutoSize = True + Me.ucrNudLenghtmore.DecimalPlaces = New Decimal(New Integer() {0, 0, 0, 0}) + Me.ucrNudLenghtmore.Increment = New Decimal(New Integer() {1, 0, 0, 0}) + Me.ucrNudLenghtmore.Location = New System.Drawing.Point(149, 291) + Me.ucrNudLenghtmore.Maximum = New Decimal(New Integer() {100, 0, 0, 0}) + Me.ucrNudLenghtmore.Minimum = New Decimal(New Integer() {0, 0, 0, 0}) + Me.ucrNudLenghtmore.Name = "ucrNudLenghtmore" + Me.ucrNudLenghtmore.Size = New System.Drawing.Size(50, 20) + Me.ucrNudLenghtmore.TabIndex = 15 + Me.ucrNudLenghtmore.Value = New Decimal(New Integer() {0, 0, 0, 0}) + ' 'dlgClimaticLengthOfSeason ' Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi Me.AutoSize = True - Me.ClientSize = New System.Drawing.Size(416, 365) + Me.ClientSize = New System.Drawing.Size(416, 384) + Me.Controls.Add(Me.ucrNudLenghtmore) + Me.Controls.Add(Me.ucrChkLengthmore) Me.Controls.Add(Me.ucrChkType) Me.Controls.Add(Me.ucrChkLengthofSeason) Me.Controls.Add(Me.ucrInputTextType) @@ -230,4 +256,6 @@ Partial Class dlgClimaticLengthOfSeason Friend WithEvents ucrChkLengthofSeason As ucrCheck Friend WithEvents ucrInputTextType As ucrInputTextBox Friend WithEvents ucrInputLengthofSeason As ucrInputTextBox + Friend WithEvents ucrNudLenghtmore As ucrNud + Friend WithEvents ucrChkLengthmore As ucrCheck End Class diff --git a/instat/dlgClimaticLengthOfSeason.vb b/instat/dlgClimaticLengthOfSeason.vb index e6221ade614..673c14b017e 100644 --- a/instat/dlgClimaticLengthOfSeason.vb +++ b/instat/dlgClimaticLengthOfSeason.vb @@ -20,8 +20,8 @@ Public Class dlgClimaticLengthOfSeason Private bReset As Boolean = True Private strCurrDataName As String = "" - Private clsLengthOfSeasonFunction, clsConvertColumnTypeFunction, clsApplyInstatCalcFunction, clsAsCharacterFunction, clsCombinationCalcFunction, clsStartEndStatusFunction, clsCaseWhenFunction, clsIsNAFunction, clsIsNA1Function, clsCombinationListFunction As New RFunction - Private clsMinusOpertor, clsAndOperator, clsOROperator, clsCaseWhenOperator, clsCaseWhen1Operator, clsCaseWhen2Operator, clsCaseWhen3Operator, clsAssignOperator, clsAssign1Operator, clsAssign2Operator, clsAssign3Operator, clsAssign4Operator, clsAnd1Operator, clsAnd2Operator As New ROperator + Private clsLengthOfSeasonFunction, clsLengthmoreFunction, clsListFunction, clsAscharactermoreFunction, clsConvertColumnTypeFunction, clsElseIfMoreFunction, clsApplyInstatCalcFunction, clsAsCharacterFunction, clsCombinationCalcFunction, clsStartEndStatusFunction, clsCaseWhenFunction, clsIsNAFunction, clsIsNA1Function, clsCombinationListFunction As New RFunction + Private clsMinusOpertor, clsAssignMoreOperator, clsMinusmoreOPerator, clsAndOperator, clsOROperator, clsCaseWhenOperator, clsCaseWhen1Operator, clsCaseWhen2Operator, clsCaseWhen3Operator, clsAssignOperator, clsAssign1Operator, clsAssign2Operator, clsAssign3Operator, clsAssign4Operator, clsAnd1Operator, clsAnd2Operator As New ROperator Private Sub dlgClimaticLengthOfSeason_Load(sender As Object, e As EventArgs) Handles MyBase.Load If bFirstLoad Then @@ -77,12 +77,28 @@ Public Class dlgClimaticLengthOfSeason ucrInputTextType.SetParameter(New RParameter("result_name", 2)) ucrInputTextType.SetDataFrameSelector(ucrSelectorLengthofSeason.ucrAvailableDataFrames) ucrInputTextType.SetName("length_status") + + ucrChkLengthmore.SetText("Length_More") + ucrChkLengthmore.AddParameterPresentCondition(True, "sub3", True) + ucrChkLengthmore.AddParameterPresentCondition(False, "sub3", False) + ucrChkLengthmore.AddToLinkedControls(ucrNudLenghtmore, {True}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=366) + + ucrNudLenghtmore.SetParameter(New RParameter("left", 0, False)) + ucrNudLenghtmore.DecimalPlaces = 0 + ucrNudLenghtmore.Increment = 1 + ucrNudLenghtmore.Minimum = 1 + ucrNudLenghtmore.Maximum = 366 + EnableLengthmore() End Sub Private Sub SetDefaults() Dim strLengthName As String = "length" Dim strTypeName As String = "length_status" + clsAscharactermoreFunction = New RFunction + clsListFunction = New RFunction + clsMinusmoreOPerator =New ROperator + clsLengthOfSeasonFunction.Clear() clsCombinationCalcFunction.Clear() clsApplyInstatCalcFunction.Clear() @@ -91,7 +107,10 @@ Public Class dlgClimaticLengthOfSeason clsIsNAFunction.Clear() clsIsNA1Function.Clear() clsAsCharacterFunction.Clear() + clsLengthmoreFunction.Clear() + clsElseIfMoreFunction.Clear() + clsAssignMoreOperator.Clear() clsMinusOpertor.Clear() clsAndOperator.Clear() clsOROperator.Clear() @@ -217,6 +236,30 @@ Public Class dlgClimaticLengthOfSeason clsConvertColumnTypeFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_column_to_type") clsConvertColumnTypeFunction.AddParameter("to_type", Chr(34) & "factor" & Chr(34), iPosition:=2) + clsLengthmoreFunction.SetRCommand("instat_calculation$new") + clsLengthmoreFunction.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + clsLengthmoreFunction.AddParameter("function_exp", clsRFunctionParameter:=clsElseIfMoreFunction, iPosition:=1) + clsLengthmoreFunction.AddParameter("sub_calculations", clsRFunctionParameter:=clsListFunction, iPosition:=4) + clsLengthmoreFunction.AddParameter("save", 2, iPosition:=5) + clsLengthmoreFunction.SetAssignTo("length_more") + + clsListFunction.SetRCommand("list") + clsListFunction.AddParameter("x", "start_end_status", iPosition:=0, bIncludeArgumentName:=False) + clsListFunction.AddParameter("y", "length_of_season", iPosition:=1, bIncludeArgumentName:=False) + + clsElseIfMoreFunction.SetRCommand("ifelse") + clsElseIfMoreFunction.bToScriptAsRString = True + clsElseIfMoreFunction.AddParameter("test", clsROperatorParameter:=clsAssignMoreOperator, iPosition:=0, bIncludeArgumentName:=False) + clsElseIfMoreFunction.AddParameter("yes", clsROperatorParameter:=clsMinusmoreOPerator, iPosition:=1, bIncludeArgumentName:=False) + + clsAssignMoreOperator.SetOperation("==") + clsAssignMoreOperator.AddParameter("left", clsRFunctionParameter:=clsAscharactermoreFunction, iPosition:=0, bIncludeArgumentName:=False) + clsAssignMoreOperator.AddParameter("rigth", Chr(34) & "MORE" & Chr(34), iPosition:=1, bIncludeArgumentName:=False) + + clsAscharactermoreFunction.SetRCommand("as.character") + + clsMinusmoreOPerator.SetOperation("-") + 'Base Function ucrBase.clsRsyntax.ClearCodes() ucrBase.clsRsyntax.SetBaseRFunction(clsApplyInstatCalcFunction) @@ -233,6 +276,7 @@ Public Class dlgClimaticLengthOfSeason ucrReceiverEndofRainsLogical.AddAdditionalCodeParameterPair(clsAnd2Operator, New RParameter("end_status", 1), iAdditionalPairNo:=4) ucrReceiverStartofRainsLogical.AddAdditionalCodeParameterPair(clsAssign3Operator, New RParameter("start_status", 0), iAdditionalPairNo:=5) ucrInputTextType.AddAdditionalCodeParameterPair(clsConvertColumnTypeFunction, New RParameter("col_names", 1), iAdditionalPairNo:=1) + ucrReceiverStartofRains.AddAdditionalCodeParameterPair(clsMinusmoreOPerator, New RParameter("rigth", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=1) ucrReceiverStartofRains.SetRCode(clsMinusOpertor, bReset) ucrReceiverEndofRains.SetRCode(clsMinusOpertor, bReset) @@ -242,6 +286,8 @@ Public Class dlgClimaticLengthOfSeason ucrInputTextType.SetRCode(clsStartEndStatusFunction, bReset) ucrChkLengthofSeason.SetRCode(clsCombinationListFunction, bReset) ucrChkType.SetRCode(clsCombinationListFunction, bReset) + ucrChkLengthmore.SetRCode(clsCombinationListFunction, bReset) + ucrNudLenghtmore.SetRCode(clsMinusmoreOPerator, bReset) End Sub Private Sub TestOKEnabled() @@ -288,6 +334,7 @@ Public Class dlgClimaticLengthOfSeason End Sub Private Sub ucrChkType_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkType.ControlValueChanged + EnableLengthmore() If ucrChkType.Checked Then clsCombinationListFunction.AddParameter("sub2", clsRFunctionParameter:=clsStartEndStatusFunction, bIncludeArgumentName:=False, iPosition:=1) ucrBase.clsRsyntax.AddToAfterCodes(clsConvertColumnTypeFunction, iPosition:=0) @@ -305,4 +352,35 @@ Public Class dlgClimaticLengthOfSeason Private Sub ucrSelectorLengthofSeason_DataFrameChanged() Handles ucrSelectorLengthofSeason.DataFrameChanged clsConvertColumnTypeFunction.AddParameter("data_name", Chr(34) & ucrSelectorLengthofSeason.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) End Sub + + Private Sub ucrChkLengthmore_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkLengthmore.ControlValueChanged + EnableLengthmore() + If ucrChkLengthmore.Checked Then + clsCombinationListFunction.AddParameter("sub3", clsRFunctionParameter:=clsLengthmoreFunction, bIncludeArgumentName:=False, iPosition:=2) + Else + clsCombinationListFunction.RemoveParameterByName("sub3") + End If + End Sub + + Private Sub EnableLengthmore() + ucrChkLengthmore.Enabled = ucrChkType.Checked + End Sub + + Private Sub ucrInputLengthofSeason_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputLengthofSeason.ControlValueChanged + If Not ucrInputLengthofSeason.IsEmpty Then + clsElseIfMoreFunction.AddParameter("no", ucrInputLengthofSeason.GetText(), iPosition:=2, bIncludeArgumentName:=False) + clsLengthmoreFunction.AddParameter("result_name", Chr(34) & ucrInputLengthofSeason.GetText & "_more" & Chr(34), iPosition:=2) + Else + clsElseIfMoreFunction.RemoveParameterByName("no") + clsLengthmoreFunction.RemoveParameterByName("result_name") + End If + End Sub + + Private Sub ucrInputTextType_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputTextType.ControlValueChanged + If Not ucrInputTextType.IsEmpty Then + clsAscharactermoreFunction.AddParameter("x", ucrInputTextType.GetText(), iPosition:=0, bIncludeArgumentName:=False) + Else + clsAscharactermoreFunction.RemoveParameterByName("x") + End If + End Sub End Class \ No newline at end of file diff --git a/instat/dlgClimaticSummary.vb b/instat/dlgClimaticSummary.vb index 122ed4dfdcd..9afa0c59809 100644 --- a/instat/dlgClimaticSummary.vb +++ b/instat/dlgClimaticSummary.vb @@ -22,7 +22,7 @@ Public Class dlgClimaticSummary Private iReceiverMaxY As Integer Private iReceiverLabelMaxY As Integer Private bResetSubdialog As Boolean = False - Private clsDefaultFunction, clsConcFunction, clsSummariesList, + Private clsDefaultFunction, clsIfElseFirstDoyFilledFunction, clsConcFunction, clsSummariesList, clsDefaultFactors, clsDayFilterCalc, clsDayFilterCalcFromConvert, clsDayFilterCalcFromList, clsAddDateFunction, clsDummyFunction As New RFunction @@ -157,6 +157,7 @@ Public Class dlgClimaticSummary clsConcFunction = New RFunction clsAddDateFunction = New RFunction clsDummyFunction = New RFunction + clsIfElseFirstDoyFilledFunction = New RFunction clsFromAndToConditionOperator = New ROperator clsDayFilterCalc = New RFunction @@ -288,7 +289,7 @@ Public Class dlgClimaticSummary End Sub Private Sub cmdDoyRange_Click(sender As Object, e As EventArgs) Handles cmdDoyRange.Click - sdgDoyRange.Setup(clsNewDoyFilterCalc:=clsDayFilterCalc, clsNewDayFromOperator:=clsFromConditionOperator, clsNewDayToOperator:=clsToConditionOperator, clsNewCalcFromList:=clsDayFilterCalcFromList, strNewMainDataFrame:=ucrSelectorVariable.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strNewDoyColumn:=ucrReceiverDOY.GetVariableNames(False)) + sdgDoyRange.Setup(clsNewDoyFilterCalc:=clsDayFilterCalc, clsNewIfElseFirstDoyFilledFunction:=clsIfElseFirstDoyFilledFunction, clsNewDayFromOperator:=clsFromConditionOperator, clsNewDayToOperator:=clsToConditionOperator, clsNewCalcFromList:=clsDayFilterCalcFromList, strNewMainDataFrame:=ucrSelectorVariable.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strNewDoyColumn:=ucrReceiverDOY.GetVariableNames(False)) sdgDoyRange.ShowDialog() UpdateDayFilterPreview() End Sub diff --git a/instat/dlgDescribeTwoVariable.vb b/instat/dlgDescribeTwoVariable.vb index 8f4bd45c86b..6dac604e366 100644 --- a/instat/dlgDescribeTwoVariable.vb +++ b/instat/dlgDescribeTwoVariable.vb @@ -1592,7 +1592,7 @@ Public Class dlgDescribeTwoVariable Dim ucrCurrentReceiver As ucrReceiverSingle = If(rdoTwoVariable.Checked, ucrReceiverSecondTwoVariableFactor, ucrReceiverThreeVariableSecondFactor) If Not ucrCurrentReceiver.IsEmpty Then - strSecondVariableType = If({"factor", "character", "logical"}.Contains(ucrCurrentReceiver.strCurrDataType), + strSecondVariableType = If({"factor", "ordered,factor", "character", "logical"}.Contains(ucrCurrentReceiver.strCurrDataType), "categorical", "numeric") lblSecondType.Text = strSecondVariableType lblSecondType.ForeColor = SystemColors.Highlight @@ -1653,7 +1653,7 @@ Public Class dlgDescribeTwoVariable If rdoThreeVariable.Checked Then Dim ucrCurrentReceiver As ucrReceiverSingle = ucrReceiverThreeVariableThirdVariable If Not ucrCurrentReceiver.IsEmpty Then - strThirdVariableType = If({"factor", "character", "logical"}.Contains(ucrCurrentReceiver.strCurrDataType), + strThirdVariableType = If({"factor", "ordered,factor", "character", "logical"}.Contains(ucrCurrentReceiver.strCurrDataType), "categorical", "numeric") lblThreeVariableCategorical.Text = strThirdVariableType lblThreeVariableCategorical.ForeColor = SystemColors.Highlight diff --git a/instat/dlgEndOfRainsSeason.Designer.vb b/instat/dlgEndOfRainsSeason.Designer.vb index 8b4b8203617..e877a70e9b1 100644 --- a/instat/dlgEndOfRainsSeason.Designer.vb +++ b/instat/dlgEndOfRainsSeason.Designer.vb @@ -52,6 +52,8 @@ Partial Class dlgEndOfRainsSeason Me.rdoVariableEvaporation = New System.Windows.Forms.RadioButton() Me.rdoValueEvaporation = New System.Windows.Forms.RadioButton() Me.grpEndofSeason = New System.Windows.Forms.GroupBox() + Me.ucrInputFilled = New instat.ucrInputTextBox() + Me.ucrChkFilled = New instat.ucrCheck() Me.ucrInputEndofSeasonOccurence = New instat.ucrInputTextBox() Me.ucrInputSeasonDoy = New instat.ucrInputTextBox() Me.ucrInputEndofSeasonDate = New instat.ucrInputTextBox() @@ -214,19 +216,43 @@ Partial Class dlgEndOfRainsSeason ' 'grpEndofSeason ' + Me.grpEndofSeason.Controls.Add(Me.ucrInputFilled) + Me.grpEndofSeason.Controls.Add(Me.ucrChkFilled) Me.grpEndofSeason.Controls.Add(Me.ucrInputEndofSeasonOccurence) Me.grpEndofSeason.Controls.Add(Me.ucrInputSeasonDoy) Me.grpEndofSeason.Controls.Add(Me.ucrInputEndofSeasonDate) Me.grpEndofSeason.Controls.Add(Me.ucrChkEndofSeasonOccurence) Me.grpEndofSeason.Controls.Add(Me.ucrChkEndofSeasonDate) Me.grpEndofSeason.Controls.Add(Me.ucrChkEndofSeasonDoy) - Me.grpEndofSeason.Location = New System.Drawing.Point(3, 426) + Me.grpEndofSeason.Location = New System.Drawing.Point(3, 403) Me.grpEndofSeason.Name = "grpEndofSeason" - Me.grpEndofSeason.Size = New System.Drawing.Size(472, 41) + Me.grpEndofSeason.Size = New System.Drawing.Size(472, 83) Me.grpEndofSeason.TabIndex = 32 Me.grpEndofSeason.TabStop = False Me.grpEndofSeason.Text = "End of Season" ' + 'ucrInputFilled + ' + Me.ucrInputFilled.AddQuotesIfUnrecognised = True + Me.ucrInputFilled.AutoSize = True + Me.ucrInputFilled.IsMultiline = False + Me.ucrInputFilled.IsReadOnly = False + Me.ucrInputFilled.Location = New System.Drawing.Point(121, 53) + Me.ucrInputFilled.Margin = New System.Windows.Forms.Padding(9) + Me.ucrInputFilled.Name = "ucrInputFilled" + Me.ucrInputFilled.Size = New System.Drawing.Size(104, 21) + Me.ucrInputFilled.TabIndex = 49 + ' + 'ucrChkFilled + ' + Me.ucrChkFilled.AutoSize = True + Me.ucrChkFilled.Checked = False + Me.ucrChkFilled.Location = New System.Drawing.Point(4, 53) + Me.ucrChkFilled.Margin = New System.Windows.Forms.Padding(6) + Me.ucrChkFilled.Name = "ucrChkFilled" + Me.ucrChkFilled.Size = New System.Drawing.Size(105, 25) + Me.ucrChkFilled.TabIndex = 50 + ' 'ucrInputEndofSeasonOccurence ' Me.ucrInputEndofSeasonOccurence.AddQuotesIfUnrecognised = True @@ -598,7 +624,7 @@ Partial Class dlgEndOfRainsSeason ' Me.ucrBase.AutoSize = True Me.ucrBase.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrBase.Location = New System.Drawing.Point(3, 472) + Me.ucrBase.Location = New System.Drawing.Point(3, 493) Me.ucrBase.Margin = New System.Windows.Forms.Padding(4) Me.ucrBase.Name = "ucrBase" Me.ucrBase.Size = New System.Drawing.Size(408, 52) @@ -732,4 +758,6 @@ Partial Class dlgEndOfRainsSeason Friend WithEvents ucrInputEvaporation As ucrInputTextBox Friend WithEvents ucrNudWB As ucrNud Friend WithEvents ucrChkWB As ucrCheck + Friend WithEvents ucrInputFilled As ucrInputTextBox + Friend WithEvents ucrChkFilled As ucrCheck End Class \ No newline at end of file diff --git a/instat/dlgEndOfRainsSeason.vb b/instat/dlgEndOfRainsSeason.vb index 8bf2b645f9b..7b8056768be 100644 --- a/instat/dlgEndOfRainsSeason.vb +++ b/instat/dlgEndOfRainsSeason.vb @@ -23,13 +23,15 @@ Public Class dlgEndOfRainsSeason Private strWBMin As String = "wb_min" Private strWBMax As String = "wb_max" Private strWB As String = "wb" + Private strCondCheck As String = "conditions_check" Private strEvapReplaceNA As String = "evap_NA_as_value" Private strCurrDataName As String = "" Private iCapacityDefault As Integer = 60 + Private strYearType As String = "year_type" #Region "general_code_structures" ' General - Private clsRunCalculation, clsListCalFunction, clsDummyFunction As New RFunction + Private clsVectorFunction, clsDeleteunusedrowFunction, clsStationtypeFunction, clsConvertColumnTypeStationFunction, clsConvertlinkedvariable1Function, clsConvertlinkedvariableFunction, clsConvertColumnType1Function, clsGetColumnDataTypeFunction, clsConvertColumnTypeFunction, clsRunCalculation, clsListCalFunction, clsDummyFunction As New RFunction Private clsFirstOrLastFunction As New RFunction ' Group by @@ -47,7 +49,7 @@ Public Class dlgEndOfRainsSeason #Region "end_of_rains_code_structures" ' Rolling sum rain - Private clsEndRainsRollingSumCalc, clsWBEvaporationMinFunction, clsWBEvaporationMaxFunction As New RFunction + Private clsEndRainsRollingSumCalc, clsElseIfENdRainStatusFunction, clsWBEvaporationMinFunction, clsWBEvaporationMaxFunction As New RFunction Private clsRollSumRainFunction As New RFunction Private clsWBOperator1, clsWBOperator2 As New ROperator ' Conditions filter @@ -80,8 +82,7 @@ Public Class dlgEndOfRainsSeason #Region "end_of_season_code_structures" - Private clsEndSeasonIsNaRain As New RFunction - + Private clsEndSeasonIsNaRain, clsLastFunction, clsnaIsRainFunction, clsElseIfRainFunction As New RFunction ' Rain min Private clsEndSeasonRainMinCalc As New RFunction Private clsIfElseRainMinFunction As New RFunction @@ -131,6 +132,11 @@ Public Class dlgEndOfRainsSeason Private clsIfElseVariableEvaporation As New RFunction Private clsIsNaEvaporation As New RFunction + 'Check Condition + Private clsConditionCheckFunction, clsConvertColumnlinkeddataFunction, clsRunCalculationStatus2Function, clsSetNamesEndSeasonStatusFunction, clsSetNamesEndSeasonFunction, clsVectorCalFormListFunction, clsLinkeddataFunction, clsRunCalculationStatusFunction, clsAllStatusFunction, clsListCondCheckFilterFunction, clsIsnaSecondConditionFilterFunction, clsListCondCheckFunction, clsConditionsFilterCondCheckFunction, clsElseifCondCheckFunction, clsIsnaConditionCheckFunction As New RFunction + + Private clsConditionCheckOperator, clsCheckSecondConditionFilterOperator, clsCheckConditionFilterOperator, clsConditionChecksecondOperator As ROperator + ' Conditions filter Private clsEndSeasonConditionsFilterCalc As New RFunction Private clsEndSeasonConditionsFilterSubCalcsList As New RFunction @@ -139,9 +145,12 @@ Public Class dlgEndOfRainsSeason ' Doy summary Private clsEndSeasonFirstDoySummaryCalc As New RFunction + Private clsEndSeasonFirstDoySummaryCalcFilledFunction As New RFunction Private clsIfElseFirstDoyFunction As New RFunction - Private clsIsNaFirstWB As New RFunction - Private clsFirstDoyFunction As New RFunction + Public clsIfElseFirstDoyFilledFunction As New RFunction + Private clsIfElseFirstDoyFilled1Function, clsrunfilledFunction, clsFirstFilledFunction, clsFirstFilled1Function, clsIsNafilledFunction As New RFunction + Private clsAssignOperator As New ROperator + Private clsFirstDoyFunction, clsIsNaFirstWB As New RFunction Private clsFirstWBFunction As New RFunction ' Date summary @@ -150,12 +159,12 @@ Public Class dlgEndOfRainsSeason Private clsFirstDateFunction As New RFunction ' Status summary - Private clsEndSeasonStatusSummaryCalc As New RFunction + Private clsEndSeasonStatusSummaryCalc, clsIfelseStatus2Function, clsIsnaStatus2Function, clsEndSeasonStatus2Function, clsIsNAStatusFunction, clsFirstStatusFunction, clsIfelseStatusFunction, clsIfelseStatus1Function As New RFunction ' Combination - Private clsEndSeasonCombinationCalc As New RFunction - Private clsEndSeasonCombinationManipulationList As New RFunction - Private clsEndSeasonCombinationSubCalcList As New RFunction + Private clsEndSeasonCombinationCalc, clsEndSeasonCombiStatus2ListFunction, clsEndSeasonCombiStatus2Function, clsEndSeasonCombinationCalcStatusFunction As New RFunction + Private clsEndSeasonCombinationManipulationList, clsEndSeasonCombinationManipulationListStatusFunction As New RFunction + Private clsEndSeasonCombinationSubCalcList, clsEndSeasonCombinationSubCalcListStatusFunction As New RFunction #End Region Private Sub dlgEndOfRainsSeason_Load(sender As Object, e As EventArgs) Handles MyBase.Load @@ -304,6 +313,15 @@ Public Class dlgEndOfRainsSeason ucrInputEndofSeasonOccurence.SetDataFrameSelector(ucrSelectorForWaterBalance.ucrAvailableDataFrames) ucrInputEndofSeasonOccurence.SetValidationTypeAsRVariable() + ucrChkFilled.AddParameterValuesCondition(True, "sub4", "True") + ucrChkFilled.AddParameterValuesCondition(False, "sub4", "False") + ucrChkFilled.SetText("Filled") + + ucrInputFilled.SetParameter(New RParameter("result_name", 2)) + ucrInputFilled.SetDataFrameSelector(ucrSelectorForWaterBalance.ucrAvailableDataFrames) + ucrInputFilled.SetValidationTypeAsRVariable() + + ucrChkWB.AddParameterPresentCondition(True, "WB_evap", True) ucrChkWB.AddParameterPresentCondition(False, "WB_evap", False) ucrChkWB.SetText("Reducing") @@ -319,6 +337,7 @@ Public Class dlgEndOfRainsSeason ucrChkEndofSeasonOccurence.AddToLinkedControls(ucrInputEndofSeasonOccurence, {True}, bNewLinkedHideIfParameterMissing:=True) ucrChkEndofSeasonDate.AddToLinkedControls(ucrInputEndofSeasonDate, {True}, bNewLinkedHideIfParameterMissing:=True) ucrChkEndofSeasonDoy.AddToLinkedControls(ucrInputSeasonDoy, {True}, bNewLinkedHideIfParameterMissing:=True) + ucrChkFilled.AddToLinkedControls(ucrInputFilled, {True}, bNewLinkedHideIfParameterMissing:=True) ucrChkWB.AddToLinkedControls(ucrNudWB, {True}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=0.5) ucrPnlEvaporation.AddToLinkedControls(ucrInputEvaporation, {rdoValueEvaporation}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=5) ucrPnlEvaporation.AddToLinkedControls(ucrReceiverEvaporation, {rdoVariableEvaporation}, bNewLinkedHideIfParameterMissing:=True) @@ -328,7 +347,7 @@ Public Class dlgEndOfRainsSeason ucrPnlEndOfRainsAndSeasons.AddToLinkedControls({ucrNudCapacity, ucrNudWBLessThan, ucrChkEndofSeasonDoy}, {rdoEndOfSeasons}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlEndOfRainsAndSeasons.AddToLinkedControls({ucrPnlEvaporation}, {rdoEndOfSeasons}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlEndOfRainsAndSeasons.AddToLinkedControls({ucrChkWB}, {rdoEndOfSeasons}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrPnlEndOfRainsAndSeasons.AddToLinkedControls({ucrChkEndofSeasonDate, ucrChkEndofSeasonDoy, ucrChkEndofSeasonOccurence}, {rdoEndOfSeasons}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrPnlEndOfRainsAndSeasons.AddToLinkedControls({ucrChkEndofSeasonDate, ucrChkEndofSeasonDoy, ucrChkEndofSeasonOccurence, ucrChkFilled}, {rdoEndOfSeasons}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlEndOfRainsAndSeasons.AddToLinkedControls({ucrChkEndofRainsDate, ucrChkEndofRainsDoy, ucrChkEndofRainsOccurence}, {rdoEndOfRains}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrChkEndofRainsDoy.SetLinkedDisplayControl(grpEndofRains) @@ -349,22 +368,48 @@ Public Class dlgEndOfRainsSeason Dim strWaterBalanceMin As String = "water_balance_min" Dim strDifference As String = "difference" Dim strConditionsFilter As String = "conditions_filter" + Dim strConditionFilterCondCheck As String = "conditions_filter" Dim strRollSumRain As String = "roll_sum_rain" Dim strEndRains As String = "end_rains" Dim strEndRainsStatus As String = "end_rains_status" Dim strEndRainsDate As String = "end_rains_date" Dim strEndSeason As String = "end_season" + Dim strEndSeasonFilled As String = "end_season_filled" Dim strEndSeasonStatus As String = "end_season_status" Dim strEndSeasonDate As String = "end_season_date" Dim strDoyFilter As String = "doy_filter" Dim strEndofRains As String = "end_of_rains_combined" Dim strEndofSeason As String = "end_of_season_combined" + Dim strEndofSeasonStatus As String = "end_of_season_combined_status" + Dim strEndSeasonStatus2 As String = "end_season_status_2" + Dim strEndSeasonCombiStatus2 As String = "end_season_combined_status_2" + Dim strStationType As String = "station_type" + Dim strLinkeddata As String = "linked_data_name" + Dim strCalformlist As String = "calculated_from_list" + + clsVectorFunction = New RFunction + clsConvertlinkedvariableFunction = New RFunction + clsConvertlinkedvariable1Function = New RFunction + clsIfElseFirstDoyFilled1Function = New RFunction + clsFirstFilledFunction = New RFunction + clsIsNafilledFunction = New RFunction + clsFirstFilled1Function = New RFunction + clsDeleteunusedrowFunction = New RFunction + clsConditionCheckOperator = New ROperator + clsConditionChecksecondOperator = New ROperator + clsCheckConditionFilterOperator = New ROperator + clsCheckSecondConditionFilterOperator = New ROperator #Region "clear_code_structures" ' General clsRunCalculation.Clear() clsListCalFunction.Clear() clsFirstOrLastFunction.Clear() + clsConvertColumnTypeFunction.Clear() + clsGetColumnDataTypeFunction.Clear() + clsConvertColumnType1Function.Clear() + clsStationtypeFunction.Clear() + clsConvertColumnTypeStationFunction.Clear() ' Group by clsGroupByStationYearCalc.Clear() @@ -382,6 +427,10 @@ Public Class dlgEndOfRainsSeason ' Rolling sum rain clsEndRainsRollingSumCalc.Clear() clsRollSumRainFunction.Clear() + clsElseIfENdRainStatusFunction.Clear() + clsElseIfRainFunction.Clear() + clsnaIsRainFunction.Clear() + clsLastFunction.Clear() ' Conditions filter clsEndRainsConditionsFilterCalc.Clear() @@ -404,6 +453,10 @@ Public Class dlgEndOfRainsSeason ' Status summary clsEndRainsStatusSummaryCalc.Clear() + clsIfelseStatusFunction.Clear() + clsIfelseStatus1Function.Clear() + clsFirstStatusFunction.Clear() + clsIsNAStatusFunction.Clear() ' Combination clsEndRainsCombinationCalc.Clear() @@ -464,6 +517,18 @@ Public Class dlgEndOfRainsSeason clsIsNaEvaporation.Clear() ' Conditions filter + clsConditionCheckFunction.Clear() + clsElseifCondCheckFunction.Clear() + clsIsnaConditionCheckFunction.Clear() + clsListCondCheckFunction.Clear() + clsConditionsFilterCondCheckFunction.Clear() + clsIsnaSecondConditionFilterFunction.Clear() + clsListCondCheckFilterFunction.Clear() + clsEndSeasonStatus2Function.Clear() + clsIfelseStatus2Function.Clear() + clsIsnaStatus2Function.Clear() + clsEndSeasonCombiStatus2Function.Clear() + clsEndSeasonCombiStatus2ListFunction.Clear() clsEndSeasonConditionsFilterCalc.Clear() clsEndSeasonConditionsFilterSubCalcsList.Clear() clsEndSeasonConditionsOperator.Clear() @@ -471,10 +536,14 @@ Public Class dlgEndOfRainsSeason ' Doy summary clsEndSeasonFirstDoySummaryCalc.Clear() + clsEndSeasonFirstDoySummaryCalcFilledFunction.Clear() clsIfElseFirstDoyFunction.Clear() + clsIfElseFirstDoyFilledFunction.Clear() + clsAssignOperator.Clear() clsIsNaFirstWB.Clear() clsFirstDoyFunction.Clear() clsFirstWBFunction.Clear() + clsrunfilledFunction.Clear() ' Date summary clsEndSeasonFirstDateSummaryCalc.Clear() @@ -486,9 +555,11 @@ Public Class dlgEndOfRainsSeason ' Combination clsEndSeasonCombinationCalc.Clear() + clsEndSeasonCombinationCalcStatusFunction.Clear() clsEndSeasonCombinationManipulationList.Clear() + clsEndSeasonCombinationManipulationListStatusFunction.Clear() clsEndSeasonCombinationSubCalcList.Clear() - + clsEndSeasonCombinationSubCalcListStatusFunction.Clear() #End Region ucrSelectorForWaterBalance.Reset() @@ -513,17 +584,17 @@ Public Class dlgEndOfRainsSeason clsGroupByStationCalc.SetAssignTo("grouping_by_station") ' Doy Filter - clsDoyFilterCalcFromConvert.SetRCommand("calc_from_convert") - clsDoyFilterCalcFromConvert.AddParameter("x", clsRFunctionParameter:=clsDoyFilterCalcFromList, iPosition:=0) - - clsDoyFilterCalcFromList.SetRCommand("list") - clsDoyFilterCalc.SetRCommand("instat_calculation$new") clsDoyFilterCalc.AddParameter("type", Chr(34) & "filter" & Chr(34), iPosition:=0) clsDoyFilterCalc.AddParameter("function_exp", clsROperatorParameter:=clsDoyFilterOperator, iPosition:=1) clsDoyFilterCalc.AddParameter("calculated_from", clsRFunctionParameter:=clsDoyFilterCalcFromConvert, iPosition:=2) clsDoyFilterCalc.SetAssignTo(strDoyFilter) + clsDoyFilterCalcFromConvert.SetRCommand("calc_from_convert") + clsDoyFilterCalcFromConvert.AddParameter("x", clsRFunctionParameter:=clsDoyFilterCalcFromList, iPosition:=0) + + clsDoyFilterCalcFromList.SetRCommand("list") + clsDoyFilterOperator.SetOperation("&") clsDoyFilterOperator.AddParameter("from_operator", clsROperatorParameter:=clsDayFromOperator, iPosition:=0) clsDoyFilterOperator.AddParameter("to_operator", clsROperatorParameter:=clsDayToOperator, iPosition:=1) @@ -619,11 +690,29 @@ Public Class dlgEndOfRainsSeason ' Status summary clsEndRainsStatusSummaryCalc.SetRCommand("instat_calculation$new") clsEndRainsStatusSummaryCalc.AddParameter("type", Chr(34) & "summary" & Chr(34), iPosition:=0) - clsEndRainsStatusSummaryCalc.AddParameter("function_exp", Chr(34) & "n() > 0" & Chr(34), iPosition:=1) + clsEndRainsStatusSummaryCalc.AddParameter("function_exp", clsRFunctionParameter:=clsElseIfENdRainStatusFunction, iPosition:=1) clsEndRainsStatusSummaryCalc.AddParameter("result_name", Chr(34) & strEndRainsStatus & Chr(34), iPosition:=3) clsEndRainsStatusSummaryCalc.AddParameter("save", 2, iPosition:=4) clsEndRainsStatusSummaryCalc.SetAssignTo(strEndRainsStatus) + clsElseIfENdRainStatusFunction.SetRCommand("ifelse") + clsElseIfENdRainStatusFunction.bToScriptAsRString = True + clsElseIfENdRainStatusFunction.AddParameter("x", "n() > 0", iPosition:=0, bIncludeArgumentName:=False) + clsElseIfENdRainStatusFunction.AddParameter("yes", clsRFunctionParameter:=clsElseIfRainFunction, iPosition:=1) + clsElseIfENdRainStatusFunction.AddParameter("no", "FALSE", iPosition:=2) + + clsElseIfRainFunction.SetRCommand("ifelse") + clsElseIfRainFunction.AddParameter("y", clsRFunctionParameter:=clsnaIsRainFunction, iPosition:=0, bIncludeArgumentName:=False) + clsElseIfRainFunction.AddParameter("yes", "NA", iPosition:=1) + clsElseIfRainFunction.AddParameter("no", "TRUE", iPosition:=2) + + clsnaIsRainFunction.SetRCommand("is.na") + clsnaIsRainFunction.AddParameter("x", clsRFunctionParameter:=clsLastFunction, iPosition:=1) + + clsLastFunction.SetPackageName("dplyr") + clsLastFunction.SetRCommand("last") + clsLastFunction.AddParameter("x", strRollSumRain, iPosition:=0) + ' Combined clsEndRainsCombinationCalc.SetRCommand("instat_calculation$new") clsEndRainsCombinationCalc.AddParameter("type", Chr(34) & "combination" & Chr(34), iPosition:=0) @@ -648,16 +737,17 @@ Public Class dlgEndOfRainsSeason clsEndRainsCombinationSubCalcList.SetRCommand("list") clsEndRainsCombinationSubCalcList.AddParameter("sub1", clsRFunctionParameter:=clsEndRainsLastDoySummaryCalc, bIncludeArgumentName:=False, iPosition:=0) + clsEndRainsCombinationSubCalcList.AddParameter("sub2", clsRFunctionParameter:=clsEndRainsLastDateSummaryCalc, bIncludeArgumentName:=False, iPosition:=1) + clsEndRainsCombinationSubCalcList.AddParameter("sub3", clsRFunctionParameter:=clsEndRainsStatusSummaryCalc, bIncludeArgumentName:=False, iPosition:=2) clsListCalFunction.SetRCommand("list") clsListCalFunction.AddParameter("drop", "FALSE", iPosition:=0) clsRunCalculation.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$run_instat_calculation") - clsRunCalculation.AddParameter("display", "FALSE") - clsRunCalculation.AddParameter("calc", clsRFunctionParameter:=clsEndRainsCombinationCalc) + clsRunCalculation.AddParameter("display", "FALSE", iPosition:=0) + clsRunCalculation.AddParameter("calc", clsRFunctionParameter:=clsEndRainsCombinationCalc, iPosition:=1) clsRunCalculation.AddParameter("param_list", clsRFunctionParameter:=clsListCalFunction, iPosition:=2) - ucrBase.clsRsyntax.SetBaseRFunction(clsRunCalculation) #End Region #Region "end_of_season" @@ -685,7 +775,7 @@ Public Class dlgEndOfRainsSeason clsIfElseRainMaxFunction.bToScriptAsRString = True clsIfElseRainMaxFunction.SetRCommand("ifelse") clsIfElseRainMaxFunction.AddParameter("test", clsRFunctionParameter:=clsEndSeasonIsNaRain, iPosition:=0) - clsIfElseRainMaxFunction.AddParameter("yes", 100, iPosition:=0) + clsIfElseRainMaxFunction.AddParameter("yes", 100, iPosition:=1) 'Pmax clsPMaxFunction.SetRCommand("pmax") @@ -713,15 +803,15 @@ Public Class dlgEndOfRainsSeason clsReduceWBMinFunction1.bToScriptAsRString = True clsReduceWBMinFunction1.SetPackageName("purrr") clsReduceWBMinFunction1.SetRCommand("accumulate2") - clsReduceWBMinFunction1.AddParameter(".f", clsRFunctionParameter:=clsPMinWBMinFunction, iPosition:=0) - clsReduceWBMinFunction1.AddParameter(".x", clsRFunctionParameter:=clsWBMinTailFunction, iPosition:=1) + clsReduceWBMinFunction1.AddParameter(".x", clsRFunctionParameter:=clsWBMinTailFunction, iPosition:=0) + clsReduceWBMinFunction1.AddParameter(".f", clsRFunctionParameter:=clsPMinWBMinFunction, iPosition:=1) clsReduceWBMinFunction1.AddParameter(".init", "0", iPosition:=2) clsReduceWBMinFunction2.bToScriptAsRString = True clsReduceWBMinFunction2.SetPackageName("purrr") clsReduceWBMinFunction2.SetRCommand("accumulate") - clsReduceWBMinFunction2.AddParameter(".f", clsRFunctionParameter:=clsPMinWBMinFunction, iPosition:=0) - clsReduceWBMinFunction2.AddParameter(".x", clsRFunctionParameter:=clsWBMinTailFunction2, iPosition:=1) + clsReduceWBMinFunction2.AddParameter(".x", clsRFunctionParameter:=clsWBMinTailFunction2, iPosition:=0) + clsReduceWBMinFunction2.AddParameter(".f", clsRFunctionParameter:=clsPMinWBMinFunction, iPosition:=1) clsReduceWBMinFunction2.AddParameter(".init", "0", iPosition:=2) clsPMinWBMinFunction.SetRCommand(" ~ pmin") @@ -841,12 +931,12 @@ Public Class dlgEndOfRainsSeason ' Conditions filter clsEndSeasonConditionsFilterCalc.SetRCommand("instat_calculation$new") clsEndSeasonConditionsFilterCalc.AddParameter("type", Chr(34) & "filter" & Chr(34), iPosition:=0) - clsEndSeasonConditionsFilterCalc.AddParameter("function_exp", clsROperatorParameter:=clsEndSeasonConditionsOperator, iPosition:=1) + clsEndSeasonConditionsFilterCalc.AddParameter("function_exp", Chr(34) & "conditions_check == 1" & Chr(34), iPosition:=1) clsEndSeasonConditionsFilterCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonConditionsFilterSubCalcsList, iPosition:=4) clsEndSeasonConditionsFilterCalc.SetAssignTo(strConditionsFilter) clsEndSeasonConditionsFilterSubCalcsList.SetRCommand("list") - clsEndSeasonConditionsFilterSubCalcsList.AddParameter("sub1", clsRFunctionParameter:=clsEndSeasonWBCalc, iPosition:=0, bIncludeArgumentName:=False) + clsEndSeasonConditionsFilterSubCalcsList.AddParameter("sub1", clsRFunctionParameter:=clsConditionCheckFunction, iPosition:=0, bIncludeArgumentName:=False) clsEndSeasonConditionsOperator.bToScriptAsRString = True clsEndSeasonConditionsOperator.SetOperation("|") @@ -865,12 +955,35 @@ Public Class dlgEndOfRainsSeason clsEndSeasonFirstDoySummaryCalc.AddParameter("save", "2", iPosition:=6) clsEndSeasonFirstDoySummaryCalc.SetAssignTo(strEndSeason) + clsEndSeasonFirstDoySummaryCalcFilledFunction.SetRCommand("instat_calculation$new") + clsEndSeasonFirstDoySummaryCalcFilledFunction.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + clsEndSeasonFirstDoySummaryCalcFilledFunction.AddParameter("function_exp", clsRFunctionParameter:=clsIfElseFirstDoyFilledFunction, iPosition:=1) + clsEndSeasonFirstDoySummaryCalcFilledFunction.AddParameter("result_name", Chr(34) & strEndSeasonFilled & Chr(34), iPosition:=3) + clsEndSeasonFirstDoySummaryCalcFilledFunction.AddParameter("save", "2", iPosition:=4) + clsEndSeasonFirstDoySummaryCalcFilledFunction.AddParameter("calculated_from", strCalformlist, iPosition:=2) + clsEndSeasonFirstDoySummaryCalcFilledFunction.SetAssignTo(strEndSeasonFilled) + clsIfElseFirstDoyFunction.bToScriptAsRString = True clsIfElseFirstDoyFunction.SetRCommand("ifelse") clsIfElseFirstDoyFunction.AddParameter("test", clsRFunctionParameter:=clsIsNaFirstWB, iPosition:=0) clsIfElseFirstDoyFunction.AddParameter("yes", "NA", iPosition:=1) clsIfElseFirstDoyFunction.AddParameter("no", clsRFunctionParameter:=clsFirstDoyFunction, iPosition:=2) + clsIfElseFirstDoyFilledFunction.bToScriptAsRString = True + clsIfElseFirstDoyFilledFunction.SetRCommand("ifelse") + clsIfElseFirstDoyFilledFunction.AddParameter("test", clsROperatorParameter:=clsAssignOperator, iPosition:=0, bIncludeArgumentName:=False) + clsIfElseFirstDoyFilledFunction.AddParameter("yes", "366", iPosition:=1) + clsIfElseFirstDoyFilledFunction.AddParameter("no", strEndSeason, iPosition:=2) + + clsAssignOperator.SetOperation("==") + clsAssignOperator.AddParameter("left", strEndSeasonStatus, iPosition:=0, bIncludeArgumentName:=False) + clsAssignOperator.AddParameter("right", "FALSE", iPosition:=1, bIncludeArgumentName:=False) + + clsrunfilledFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$run_instat_calculation") + clsrunfilledFunction.AddParameter("display", "FALSE", iPosition:=0) + clsrunfilledFunction.AddParameter("param_list", clsRFunctionParameter:=clsListCalFunction, iPosition:=1) + clsrunfilledFunction.AddParameter("calc", strEndSeasonFilled, iPosition:=2) + clsIsNaFirstWB.SetRCommand("is.na") clsIsNaFirstWB.AddParameter("x", clsRFunctionParameter:=clsFirstWBFunction, iPosition:=0) @@ -902,11 +1015,30 @@ Public Class dlgEndOfRainsSeason ' Status summary clsEndSeasonStatusSummaryCalc.SetRCommand("instat_calculation$new") clsEndSeasonStatusSummaryCalc.AddParameter("type", Chr(34) & "summary" & Chr(34), iPosition:=0) - clsEndSeasonStatusSummaryCalc.AddParameter("function_exp", Chr(34) & "n() > 0" & Chr(34), iPosition:=1) + clsEndSeasonStatusSummaryCalc.AddParameter("function_exp", clsRFunctionParameter:=clsIfelseStatusFunction, iPosition:=1) clsEndSeasonStatusSummaryCalc.AddParameter("result_name", Chr(34) & strEndSeasonStatus & Chr(34), iPosition:=3) - clsEndSeasonStatusSummaryCalc.AddParameter("save", 2, iPosition:=4) + clsEndSeasonStatusSummaryCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsListCondCheckFilterFunction, iPosition:=4) + clsEndSeasonStatusSummaryCalc.AddParameter("save", 2, iPosition:=5) clsEndSeasonStatusSummaryCalc.SetAssignTo(strEndSeasonStatus) + clsIfelseStatusFunction.SetRCommand("ifelse") + clsIfelseStatusFunction.bToScriptAsRString = True + clsIfelseStatusFunction.AddParameter("x", "n() == 0", iPosition:=0, bIncludeArgumentName:=False) + clsIfelseStatusFunction.AddParameter("y", "NA", iPosition:=1, bIncludeArgumentName:=False) + clsIfelseStatusFunction.AddParameter("z", clsRFunctionParameter:=clsIfelseStatus1Function, iPosition:=2, bIncludeArgumentName:=False) + + clsIfelseStatus1Function.SetRCommand("ifelse") + clsIfelseStatus1Function.AddParameter("test", clsRFunctionParameter:=clsAllStatusFunction, iPosition:=0, bIncludeArgumentName:=False) + clsIfelseStatus1Function.AddParameter("yes", "FALSE", iPosition:=1, bIncludeArgumentName:=False) + clsIfelseStatus1Function.AddParameter("no", "NA", iPosition:=2, bIncludeArgumentName:=False) + + clsAllStatusFunction.SetRCommand("all") + clsAllStatusFunction.AddParameter("x", "conditions_check == 0", iPosition:=0, bIncludeArgumentName:=False) + clsAllStatusFunction.AddParameter("na.rm", "TRUE", iPosition:=1) + + clsIsNAStatusFunction.SetRCommand("is.na") + clsIsNAStatusFunction.AddParameter("x", strWB, iPosition:=0, bIncludeArgumentName:=False) + ' Combined clsEndSeasonCombinationCalc.SetRCommand("instat_calculation$new") clsEndSeasonCombinationCalc.AddParameter("type", Chr(34) & "combination" & Chr(34), iPosition:=0) @@ -921,18 +1053,173 @@ Public Class dlgEndOfRainsSeason clsEndSeasonCombinationSubCalcList.SetRCommand("list") clsEndSeasonCombinationSubCalcList.AddParameter("sub1", clsRFunctionParameter:=clsEndSeasonFirstDoySummaryCalc, bIncludeArgumentName:=False, iPosition:=0) + clsEndSeasonCombinationSubCalcList.AddParameter("sub2", clsRFunctionParameter:=clsEndSeasonFirstDateSummaryCalc, bIncludeArgumentName:=False, iPosition:=1) + + clsGetColumnDataTypeFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$get_column_data_types") + clsGetColumnDataTypeFunction.SetAssignTo(strYearType) + + clsConvertColumnTypeFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_column_to_type") + clsConvertColumnTypeFunction.AddParameter("to_type", Chr(34) & "factor" & Chr(34), iPosition:=2) + + clsVectorFunction.SetRCommand("c") + + clsConvertColumnType1Function.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_column_to_type") + clsConvertColumnType1Function.AddParameter("to_type", "year_type", iPosition:=2) + + clsConvertlinkedvariableFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_linked_variable") + + clsConvertlinkedvariable1Function.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_linked_variable") + + clsConditionCheckFunction.SetRCommand("instat_calculation$new") + clsConditionCheckFunction.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + clsConditionCheckFunction.AddParameter("function_exp", clsRFunctionParameter:=clsElseifCondCheckFunction, iPosition:=1) + clsConditionCheckFunction.AddParameter("result_name", Chr(34) & strCondCheck & Chr(34), iPosition:=2) + clsConditionCheckFunction.AddParameter("sub_calculations", clsRFunctionParameter:=clsListCondCheckFunction, iPosition:=3) + clsConditionCheckFunction.SetAssignTo(strCondCheck) + + clsListCondCheckFunction.SetRCommand("list") + clsListCondCheckFunction.AddParameter("x", clsRFunctionParameter:=clsEndSeasonWBCalc, iPosition:=0, bIncludeArgumentName:=False) + + clsElseifCondCheckFunction.bToScriptAsRString = True + clsElseifCondCheckFunction.SetRCommand("ifelse") + clsElseifCondCheckFunction.AddParameter("test", clsROperatorParameter:=clsConditionCheckOperator, iPosition:=0, bIncludeArgumentName:=False) + clsElseifCondCheckFunction.AddParameter("yes", "1", iPosition:=1, bIncludeArgumentName:=False) + clsElseifCondCheckFunction.AddParameter("no", "0", iPosition:=2, bIncludeArgumentName:=False) + + clsConditionCheckOperator.SetOperation("|") + clsConditionCheckOperator.AddParameter("left", clsROperatorParameter:=clsConditionChecksecondOperator, iPosition:=0, bIncludeArgumentName:=False) + clsConditionCheckOperator.AddParameter("riht", clsRFunctionParameter:=clsIsnaConditionCheckFunction, iPosition:=1, bIncludeArgumentName:=False) + + clsConditionChecksecondOperator.SetOperation("<=") + clsConditionChecksecondOperator.AddParameter("left", strWB, iPosition:=0, bIncludeArgumentName:=False) + clsConditionChecksecondOperator.AddParameter("right", "0.5", iPosition:=1, bIncludeArgumentName:=False) + + clsIsnaConditionCheckFunction.SetRCommand("is.na") + + clsConditionsFilterCondCheckFunction.SetRCommand("instat_calculation$new") + clsConditionsFilterCondCheckFunction.AddParameter("type", Chr(34) & "filter" & Chr(34), iPosition:=0) + clsConditionsFilterCondCheckFunction.AddParameter("function_exp", clsROperatorParameter:=clsCheckConditionFilterOperator, iPosition:=1) + clsConditionsFilterCondCheckFunction.AddParameter("sub_calculations", clsRFunctionParameter:=clsListCondCheckFilterFunction, iPosition:=2) + clsConditionsFilterCondCheckFunction.SetAssignTo(strConditionFilterCondCheck) + + clsListCondCheckFilterFunction.SetRCommand("list") + clsListCondCheckFilterFunction.AddParameter("x", strCondCheck, iPosition:=0, bIncludeArgumentName:=False) + + clsCheckConditionFilterOperator.SetOperation("|") + clsCheckConditionFilterOperator.bToScriptAsRString = True + clsCheckConditionFilterOperator.AddParameter("left", "conditions_check == 1", iPosition:=0, bIncludeArgumentName:=False) + clsCheckConditionFilterOperator.AddParameter("right", clsROperatorParameter:=clsCheckSecondConditionFilterOperator, iPosition:=1, bIncludeArgumentName:=False) + + clsCheckSecondConditionFilterOperator.SetOperation("|") + clsCheckSecondConditionFilterOperator.AddParameter("left", clsRFunctionParameter:=clsIsnaSecondConditionFilterFunction, iPosition:=0, bIncludeArgumentName:=False) + clsCheckSecondConditionFilterOperator.AddParameter("right", "conditions_check == 0", iPosition:=1, bIncludeArgumentName:=False) + + clsIsnaSecondConditionFilterFunction.SetRCommand("is.na") + clsIsnaSecondConditionFilterFunction.AddParameter("x", "conditions_check", iPosition:=0, bIncludeArgumentName:=False) + + clsEndSeasonCombinationCalcStatusFunction.SetRCommand("instat_calculation$new") + clsEndSeasonCombinationCalcStatusFunction.AddParameter("type", Chr(34) & "combination" & Chr(34), iPosition:=0) + clsEndSeasonCombinationCalcStatusFunction.AddParameter("manipulations", clsRFunctionParameter:=clsEndSeasonCombinationManipulationListStatusFunction, iPosition:=1) + clsEndSeasonCombinationCalcStatusFunction.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonCombinationSubCalcListStatusFunction, iPosition:=2) + clsEndSeasonCombinationCalcStatusFunction.SetAssignTo(strEndofSeasonStatus) + + clsEndSeasonCombinationManipulationListStatusFunction.SetRCommand("list") + clsEndSeasonCombinationManipulationListStatusFunction.AddParameter("manip1", strConditionsFilter, bIncludeArgumentName:=False, iPosition:=0) + clsEndSeasonCombinationManipulationListStatusFunction.AddParameter("manip2", "grouping_by_station_year", bIncludeArgumentName:=False, iPosition:=1) + clsEndSeasonCombinationManipulationListStatusFunction.AddParameter("manip3", strDoyFilter, bIncludeArgumentName:=False, iPosition:=2) + + clsEndSeasonCombinationSubCalcListStatusFunction.SetRCommand("list") + clsEndSeasonCombinationSubCalcListStatusFunction.AddParameter("sub3", strEndSeasonStatus, bIncludeArgumentName:=False, iPosition:=0) + + clsRunCalculationStatusFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$run_instat_calculation") + clsRunCalculationStatusFunction.AddParameter("display", "FALSE", iPosition:=0) + clsRunCalculationStatusFunction.AddParameter("param_list", clsRFunctionParameter:=clsListCalFunction, iPosition:=1) + clsRunCalculationStatusFunction.AddParameter("calc", strEndofSeasonStatus, iPosition:=2) + + clsLinkeddataFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$get_linked_to_data_name") + clsLinkeddataFunction.SetAssignTo(strLinkeddata) + + clsVectorCalFormListFunction.SetRCommand("c") + clsVectorCalFormListFunction.AddParameter("x", clsRFunctionParameter:=clsSetNamesEndSeasonStatusFunction, iPosition:=0, bIncludeArgumentName:=False) + clsVectorCalFormListFunction.AddParameter("y", clsRFunctionParameter:=clsSetNamesEndSeasonFunction, iPosition:=1, bIncludeArgumentName:=False) + clsVectorCalFormListFunction.SetAssignTo(strCalformlist) + + clsSetNamesEndSeasonStatusFunction.SetRCommand("setNames") + clsSetNamesEndSeasonStatusFunction.AddParameter("x", Chr(34) & strEndSeasonStatus & Chr(34), iPosition:=0, bIncludeArgumentName:=False) + clsSetNamesEndSeasonStatusFunction.AddParameter("y", strLinkeddata, iPosition:=1, bIncludeArgumentName:=False) + + clsSetNamesEndSeasonFunction.SetRCommand("setNames") + clsSetNamesEndSeasonFunction.AddParameter("x", Chr(34) & strEndSeason & Chr(34), iPosition:=0, bIncludeArgumentName:=False) + clsSetNamesEndSeasonFunction.AddParameter("y", strLinkeddata, iPosition:=1, bIncludeArgumentName:=False) + + clsEndSeasonStatus2Function.SetRCommand("instat_calculation$new") + clsEndSeasonStatus2Function.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + clsEndSeasonStatus2Function.AddParameter("function_exp", clsRFunctionParameter:=clsIfelseStatus2Function, iPosition:=1) + clsEndSeasonStatus2Function.AddParameter("calculated_from", strCalformlist, iPosition:=2) + clsEndSeasonStatus2Function.AddParameter("result_name", Chr(34) & strEndSeasonStatus & Chr(34), iPosition:=4) + clsEndSeasonStatus2Function.AddParameter("save", 2, iPosition:=5) + clsEndSeasonStatus2Function.SetAssignTo(strEndSeasonStatus2) + + clsIfelseStatus2Function.SetRCommand("ifelse") + clsIfelseStatus2Function.bToScriptAsRString = True + clsIfelseStatus2Function.AddParameter("test", clsRFunctionParameter:=clsIsnaStatus2Function, iPosition:=0, bIncludeArgumentName:=False) + clsIfelseStatus2Function.AddParameter("yes", "TRUE", iPosition:=1, bIncludeArgumentName:=False) + clsIfelseStatus2Function.AddParameter("no", strEndSeasonStatus, iPosition:=2, bIncludeArgumentName:=False) + + clsIsnaStatus2Function.SetRCommand("!is.na") + clsIsnaStatus2Function.AddParameter("x", strEndSeason, iPosition:=0, bIncludeArgumentName:=False) + + clsEndSeasonCombiStatus2Function.SetRCommand("instat_calculation$new") + clsEndSeasonCombiStatus2Function.AddParameter("type", Chr(34) & "combination" & Chr(34), iPosition:=0) + clsEndSeasonCombiStatus2Function.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonCombiStatus2ListFunction, iPosition:=2) + clsEndSeasonCombiStatus2Function.SetAssignTo(strEndSeasonCombiStatus2) + + clsEndSeasonCombiStatus2ListFunction.SetRCommand("list") + clsEndSeasonCombiStatus2ListFunction.AddParameter("x", strEndSeasonStatus2, iPosition:=0, bIncludeArgumentName:=False) + + clsRunCalculationStatus2Function.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$run_instat_calculation") + clsRunCalculationStatus2Function.AddParameter("display", "FALSE", iPosition:=0) + clsRunCalculationStatus2Function.AddParameter("param_list", clsRFunctionParameter:=clsListCalFunction, iPosition:=1) + clsRunCalculationStatus2Function.AddParameter("calc", strEndSeasonCombiStatus2, iPosition:=2) + + clsConvertColumnlinkeddataFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_column_to_type") + clsConvertColumnlinkeddataFunction.AddParameter("data_name", strLinkeddata, iPosition:=0) + clsConvertColumnlinkeddataFunction.AddParameter("to_type", "year_type", iPosition:=2) + + clsStationtypeFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$get_column_data_types") + clsStationtypeFunction.SetAssignTo(strStationType) + + clsConvertColumnTypeStationFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_column_to_type") + clsConvertColumnTypeStationFunction.AddParameter("to_type", Chr(34) & "factor" & Chr(34), iPosition:=2) + + clsDeleteunusedrowFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$remove_unused_station_year_combinations") + #End Region + ucrBase.clsRsyntax.ClearCodes() + + ucrBase.clsRsyntax.AddToBeforeCodes(clsGetColumnDataTypeFunction, iPosition:=0) + ucrBase.clsRsyntax.AddToBeforeCodes(clsConvertColumnTypeFunction, iPosition:=1) + ucrBase.clsRsyntax.AddToBeforeCodes(clsConvertlinkedvariableFunction, iPosition:=4) + ucrBase.clsRsyntax.AddToAfterCodes(clsLinkeddataFunction, iPosition:=4) + ucrBase.clsRsyntax.AddToAfterCodes(clsConvertColumnType1Function, iPosition:=11) + ucrBase.clsRsyntax.AddToAfterCodes(clsConvertColumnlinkeddataFunction, iPosition:=12) + ucrBase.clsRsyntax.SetBaseRFunction(clsRunCalculation) clsFirstOrLastFunction = clsLastDoyFunction + RemoveUnusedRow() + StationType() + EnableFilledvariable() End Sub Private Sub SetRCodeForControls(bReset As Boolean) ucrReceiverDOY.AddAdditionalCodeParameterPair(clsDayFromOperator, New RParameter("doy", 0), iAdditionalPairNo:=1) ucrReceiverDOY.AddAdditionalCodeParameterPair(clsLastDoyFunction, New RParameter("x", 0), iAdditionalPairNo:=2) ucrReceiverDOY.AddAdditionalCodeParameterPair(clsFirstDoyFunction, New RParameter("x", 0), iAdditionalPairNo:=3) + ucrReceiverDOY.AddAdditionalCodeParameterPair(clsFirstFilled1Function, New RParameter("x", 0), iAdditionalPairNo:=4) ucrReceiverRainfall.AddAdditionalCodeParameterPair(clsEndSeasonIsNaRain, New RParameter("x", 0), iAdditionalPairNo:=1) ucrReceiverRainfall.AddAdditionalCodeParameterPair(clsIfElseRainMinFunction, New RParameter("no", 2), iAdditionalPairNo:=2) ucrReceiverRainfall.AddAdditionalCodeParameterPair(clsIfElseRainMaxFunction, New RParameter("no", 2), iAdditionalPairNo:=3) + ucrReceiverRainfall.AddAdditionalCodeParameterPair(clsIsnaConditionCheckFunction, New RParameter("x", 0), iAdditionalPairNo:=4) ucrReceiverEvaporation.AddAdditionalCodeParameterPair(clsWBMaxTailFunction1, New RParameter("x", 0), iAdditionalPairNo:=1) ucrReceiverEvaporation.AddAdditionalCodeParameterPair(clsAsNumericFunction, New RParameter("x", 0), iAdditionalPairNo:=2) ucrReceiverDate.AddAdditionalCodeParameterPair(clsFirstDateFunction, New RParameter("x", 0), iAdditionalPairNo:=1) @@ -946,6 +1233,7 @@ Public Class dlgEndOfRainsSeason ucrInputSeasonDoy.SetRCode(clsEndSeasonFirstDoySummaryCalc, bReset) ucrInputEndofSeasonDate.SetRCode(clsEndSeasonFirstDateSummaryCalc, bReset) ucrInputEndofSeasonOccurence.SetRCode(clsEndSeasonStatusSummaryCalc, bReset) + ucrInputFilled.SetRCode(clsEndSeasonFirstDoySummaryCalcFilledFunction, bReset) ucrReceiverDate.SetRCode(clsLastDateFunction, bReset) @@ -958,17 +1246,17 @@ Public Class dlgEndOfRainsSeason ucrNudWB.SetRCode(clsWBEvaporationMinFunction, bReset) ucrPnlEvaporation.SetRCode(clsWBMinEvapOperator, bReset) ucrReceiverEvaporation.SetRCode(clsWBMinTailFunction1, bReset) + ucrChkFilled.SetRCode(clsEndSeasonCombinationSubCalcList, bReset) + ucrChkEndofRainsDoy.SetRCode(clsEndRainsCombinationSubCalcList, bReset) + ucrChkEndofRainsDate.SetRCode(clsDummyFunction, bReset) + ucrChkEndofRainsOccurence.SetRCode(clsDummyFunction, bReset) + ucrChkEndofSeasonDoy.SetRCode(clsEndSeasonCombinationSubCalcList, bReset) + ucrChkEndofSeasonDate.SetRCode(clsDummyFunction, bReset) + ucrChkEndofSeasonOccurence.SetRCode(clsDummyFunction, bReset) End If - ucrChkEndofSeasonDoy.SetRCode(clsEndSeasonCombinationSubCalcList, bReset) - ucrChkEndofSeasonDate.SetRCode(clsDummyFunction, bReset) - ucrChkEndofSeasonOccurence.SetRCode(clsDummyFunction, bReset) - ucrNudAmount.SetRCode(clsEndRainsRollSumRainConditionOperator, bReset) ucrNudTotalOverDays.SetRCode(clsRollSumRainFunction, bReset) - ucrChkEndofRainsDoy.SetRCode(clsEndRainsCombinationSubCalcList, bReset) - ucrChkEndofRainsDate.SetRCode(clsDummyFunction, bReset) - ucrChkEndofRainsOccurence.SetRCode(clsDummyFunction, bReset) ucrPnlEndOfRainsAndSeasons.SetRCode(clsFirstOrLastFunction, bReset) End Sub @@ -999,6 +1287,8 @@ Public Class dlgEndOfRainsSeason bOkEnabled = False ElseIf ucrChkEndofSeasonOccurence.Checked AndAlso ucrInputEndofSeasonOccurence.IsEmpty Then bOkEnabled = False + ElseIf ucrChkFilled.Checked AndAlso ucrInputFilled.IsEmpty Then + bOkEnabled = False ElseIf rdoValueEvaporation.Checked AndAlso ucrInputEvaporation.IsEmpty Then bOkEnabled = False ElseIf rdoVariableEvaporation.Checked AndAlso ucrReceiverEvaporation.IsEmpty Then @@ -1011,7 +1301,7 @@ Public Class dlgEndOfRainsSeason End Sub Private Sub cmdDoyRange_Click(sender As Object, e As EventArgs) Handles cmdDoyRange.Click - sdgDoyRange.Setup(clsNewDoyFilterCalc:=clsDoyFilterCalc, clsNewDayFromOperator:=clsDayFromOperator, clsNewDayToOperator:=clsDayToOperator, clsNewCalcFromList:=clsDoyFilterCalcFromList, strNewMainDataFrame:=ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strNewDoyColumn:=ucrReceiverDOY.GetVariableNames(False)) + sdgDoyRange.Setup(clsNewDoyFilterCalc:=clsDoyFilterCalc, clsNewDayFromOperator:=clsDayFromOperator, clsNewIfElseFirstDoyFilledFunction:=clsIfElseFirstDoyFilledFunction, clsNewDayToOperator:=clsDayToOperator, clsNewCalcFromList:=clsDoyFilterCalcFromList, strNewMainDataFrame:=ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strNewDoyColumn:=ucrReceiverDOY.GetVariableNames(False)) sdgDoyRange.ShowDialog() UpdateDayFilterPreview() End Sub @@ -1043,6 +1333,7 @@ Public Class dlgEndOfRainsSeason End Sub Private Sub DayChange() + clsEndSeasonStatusSummaryCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverDOY.GetVariableNames() & ")", iPosition:=3) clsEndRainsLastDoySummaryCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverDOY.GetVariableNames() & ")", iPosition:=3) clsEndSeasonFirstDoySummaryCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverDOY.GetVariableNames() & ")", iPosition:=3) clsEndRainsLastDateSummaryCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverDate.GetVariableNames() & ")", iPosition:=3) @@ -1054,8 +1345,64 @@ Public Class dlgEndOfRainsSeason clsEndSeasonRainMaxCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverRainfall.GetVariableNames & ")", iPosition:=3) End Sub + Private Sub RemoveUnusedRow() + If Not ucrReceiverStation.IsEmpty AndAlso Not ucrReceiverYear.IsEmpty Then + clsDeleteunusedrowFunction.AddParameter("station", ucrReceiverStation.GetVariableNames(), iPosition:=2) + clsDeleteunusedrowFunction.AddParameter("year", ucrReceiverYear.GetVariableNames(), iPosition:=1) + ucrBase.clsRsyntax.AddToAfterCodes(clsDeleteunusedrowFunction, iPosition:=13) + Else + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsDeleteunusedrowFunction) + clsDeleteunusedrowFunction.RemoveParameterByName("station") + clsDeleteunusedrowFunction.RemoveParameterByName("year") + End If + End Sub + + Private Sub StationType() + If Not ucrReceiverStation.IsEmpty Then + ucrBase.clsRsyntax.AddToBeforeCodes(clsConvertColumnTypeStationFunction, iPosition:=3) + ucrBase.clsRsyntax.AddToBeforeCodes(clsStationtypeFunction, iPosition:=2) + clsVectorFunction.AddParameter("y", ucrReceiverStation.GetVariableNames(), iPosition:=1, bIncludeArgumentName:=False) + clsStationtypeFunction.AddParameter("columns", ucrReceiverStation.GetVariableNames(), iPosition:=1) + clsConvertColumnTypeStationFunction.AddParameter("col_names", ucrReceiverStation.GetVariableNames(), iPosition:=1) + Else + ucrBase.clsRsyntax.RemoveFromBeforeCodes(clsConvertColumnTypeStationFunction) + ucrBase.clsRsyntax.RemoveFromBeforeCodes(clsStationtypeFunction) + clsVectorFunction.RemoveParameterByName("y") + clsConvertColumnTypeStationFunction.RemoveParameterByName("col_names") + clsStationtypeFunction.RemoveParameterByName("columns") + End If + End Sub + + Private Sub YearStationVariable() + If Not ucrReceiverYear.IsEmpty Then + clsVectorFunction.AddParameter("x", ucrReceiverYear.GetVariableNames(), iPosition:=0, bIncludeArgumentName:=False) + clsConvertlinkedvariableFunction.AddParameter("link_cols", clsRFunctionParameter:=clsVectorFunction, iPosition:=1) + clsConvertlinkedvariable1Function.AddParameter("link_cols", clsRFunctionParameter:=clsVectorFunction, iPosition:=1) + clsLinkeddataFunction.AddParameter("link_cols", clsRFunctionParameter:=clsVectorFunction, iPosition:=1) + Else + clsLinkeddataFunction.RemoveParameterByName("link_cols") + clsConvertlinkedvariableFunction.RemoveParameterByName("link_cols") + clsConvertlinkedvariable1Function.RemoveParameterByName("link_cols") + clsVectorFunction.RemoveParameterByName("x") + End If + End Sub + Private Sub ucrReceiverStationYear_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverYear.ControlValueChanged, ucrReceiverStation.ControlValueChanged GroupingBy() + YearStationVariable() + RemoveUnusedRow() + StationType() + If Not ucrReceiverYear.IsEmpty Then + clsGetColumnDataTypeFunction.AddParameter("columns", ucrReceiverYear.GetVariableNames(), iPosition:=1) + clsConvertColumnTypeFunction.AddParameter("col_names", ucrReceiverYear.GetVariableNames(), iPosition:=1) + clsConvertColumnType1Function.AddParameter("col_names", ucrReceiverYear.GetVariableNames(), iPosition:=1) + clsConvertColumnlinkeddataFunction.AddParameter("col_names", ucrReceiverYear.GetVariableNames(), iPosition:=1) + Else + clsConvertColumnlinkeddataFunction.RemoveParameterByName("col_names") + clsConvertColumnType1Function.RemoveParameterByName("col_names") + clsGetColumnDataTypeFunction.RemoveParameterByName("columns") + clsConvertColumnTypeFunction.RemoveParameterByName("col_names") + End If End Sub Private Sub ucrReceiverDOY_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverDOY.ControlValueChanged, ucrSelectorForWaterBalance.ControlValueChanged @@ -1076,6 +1423,16 @@ Public Class dlgEndOfRainsSeason Private Sub ucrSelectorForWaterBalance_DataFrameChanged() Handles ucrSelectorForWaterBalance.DataFrameChanged clsDoyFilterCalcFromList.ClearParameters() + clsGetColumnDataTypeFunction.AddParameter("data_name", Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertColumnTypeFunction.AddParameter("data_name", Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertColumnType1Function.AddParameter("data_name", Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertlinkedvariableFunction.AddParameter("from_data_frame", Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertlinkedvariable1Function.AddParameter("from_data_frame", Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertColumnTypeStationFunction.AddParameter("data_name", Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsStationtypeFunction.AddParameter("data_name", Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertColumnTypeStationFunction.AddParameter("data_name", Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsLinkeddataFunction.AddParameter("data_name", Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0, bIncludeArgumentName:=False) + clsDeleteunusedrowFunction.AddParameter("data_name", Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) End Sub Private Sub ucrPnlEvaporation_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlEvaporation.ControlValueChanged, ucrReceiverEvaporation.ControlValueChanged, ucrInputEvaporation.ControlValueChanged @@ -1135,11 +1492,39 @@ Public Class dlgEndOfRainsSeason End If End Sub - Private Sub ucrPnlEndOfRainsAndSeasons_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlEndOfRainsAndSeasons.ControlValueChanged + Private Sub ucrPnlEndOfRainsAndSeasons_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlEndOfRainsAndSeasons.ControlValueChanged, ucrChkEndofSeasonOccurence.ControlValueChanged If rdoEndOfRains.Checked Then + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsConditionsFilterCondCheckFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsEndSeasonStatusSummaryCalc) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsEndSeasonCombinationCalcStatusFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsRunCalculationStatusFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsVectorCalFormListFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsEndSeasonStatus2Function) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsEndSeasonCombiStatus2Function) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsRunCalculationStatus2Function) + clsRunCalculation.AddParameter("calc", clsRFunctionParameter:=clsEndRainsCombinationCalc) clsFirstOrLastFunction = clsLastDoyFunction Else + If ucrChkEndofSeasonOccurence.Checked Then + ucrBase.clsRsyntax.AddToAfterCodes(clsConditionsFilterCondCheckFunction, iPosition:=0) + ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonStatusSummaryCalc, iPosition:=1) + ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonCombinationCalcStatusFunction, iPosition:=2) + ucrBase.clsRsyntax.AddToAfterCodes(clsRunCalculationStatusFunction, iPosition:=3) + ucrBase.clsRsyntax.AddToAfterCodes(clsVectorCalFormListFunction, iPosition:=5) + ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonStatus2Function, iPosition:=6) + ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonCombiStatus2Function, iPosition:=7) + ucrBase.clsRsyntax.AddToAfterCodes(clsRunCalculationStatus2Function, iPosition:=8) + Else + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsConditionsFilterCondCheckFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsEndSeasonStatusSummaryCalc) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsRunCalculationStatusFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsEndSeasonCombinationCalcStatusFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsVectorCalFormListFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsEndSeasonStatus2Function) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsEndSeasonCombiStatus2Function) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsRunCalculationStatus2Function) + End If clsRunCalculation.AddParameter("calc", clsRFunctionParameter:=clsEndSeasonCombinationCalc) clsFirstOrLastFunction = clsFirstDoyFunction Evaporation() @@ -1162,14 +1547,6 @@ Public Class dlgEndOfRainsSeason End If End Sub - Private Sub ucrChkEndofSeasonOccurence_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkEndofSeasonOccurence.ControlValueChanged - If ucrChkEndofSeasonOccurence.Checked Then - clsEndSeasonCombinationSubCalcList.AddParameter("sub3", clsRFunctionParameter:=clsEndSeasonStatusSummaryCalc, bIncludeArgumentName:=False, iPosition:=2) - Else - clsEndSeasonCombinationSubCalcList.RemoveParameterByName("sub3") - End If - End Sub - Private Sub ucrChkEndofSeasonDoy_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkEndofSeasonDoy.ControlValueChanged If ucrChkEndofSeasonDoy.Checked Then clsEndSeasonCombinationSubCalcList.AddParameter("sub1", clsRFunctionParameter:=clsEndSeasonFirstDoySummaryCalc, bIncludeArgumentName:=False, iPosition:=0) @@ -1207,11 +1584,26 @@ Public Class dlgEndOfRainsSeason End Sub Private Sub ucrNudWBLessThan_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrNudWBLessThan.ControlValueChanged, ucrChkEndofSeasonOccurence.ControlValueChanged, ucrInputEndofSeasonOccurence.ControlValueChanged, ucrChkEndofSeasonDate.ControlValueChanged, ucrInputEndofSeasonDate.ControlValueChanged, ucrChkEndofSeasonDoy.ControlValueChanged, ucrInputSeasonDoy.ControlValueChanged, ucrSelectorForWaterBalance.ControlValueChanged + EnableFilledvariable() If Not ucrNudWBLessThan.IsEmpty Then clsEndSeasonWBConditionOperator.AddParameter("1", ucrNudWBLessThan.GetText(), iPosition:=1) Else clsEndSeasonWBConditionOperator.RemoveParameterByName("1") End If - 'Evaporation() + End Sub + + Private Sub ucrChkFilled_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkFilled.ControlValueChanged + EnableFilledvariable() + End Sub + + Private Sub EnableFilledvariable() + If ucrChkFilled.Checked Then + ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonFirstDoySummaryCalcFilledFunction, iPosition:=9) + ucrBase.clsRsyntax.AddToAfterCodes(clsrunfilledFunction, iPosition:=10) + Else + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsrunfilledFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsEndSeasonFirstDoySummaryCalcFilledFunction) + End If + ucrChkFilled.Enabled = ucrChkEndofSeasonOccurence.Checked End Sub End Class \ No newline at end of file diff --git a/instat/dlgExtremesClimatic.vb b/instat/dlgExtremesClimatic.vb index 06d745e640b..6fb03d26cb6 100644 --- a/instat/dlgExtremesClimatic.vb +++ b/instat/dlgExtremesClimatic.vb @@ -22,7 +22,7 @@ Public Class dlgExtremesClimatic Private bUpdateMinMax As Boolean = True Private clsExtreme As New RFunction Private strCurrDataName As String = "" - Private clsGroupByFunction, clsRunCalcFunction, clsDayFromAndTo, clsDayManipulation As New RFunction + Private clsGroupByFunction, clsIfElseFirstDoyFilledFunction, clsRunCalcFunction, clsDayFromAndTo, clsDayManipulation As New RFunction Private clsDayFilterCalcFromConvert, clsDayFilterCalcFromList As New RFunction Private clsDayFromAndToOperator, clsDayFromOperator, clsDayToOperator As New ROperator Private clsCurrCalc As RFunction @@ -334,6 +334,7 @@ Public Class dlgExtremesClimatic clsPlotMrlFunction = New RFunction clsThresholdPlotFunction = New RFunction clsDeclusteringFunction = New RFunction + clsIfElseFirstDoyFilledFunction = New RFunction clsDummyRfunction = clsPlotMrlFunction ucrSelectorClimaticExtremes.Reset() @@ -637,7 +638,7 @@ Public Class dlgExtremesClimatic End Sub Private Sub cmdDoyRange_Click(sender As Object, e As EventArgs) Handles cmdDoyRange.Click - sdgDoyRange.Setup(clsNewDoyFilterCalc:=clsDayFromAndTo, clsNewDayFromOperator:=clsDayFromOperator, clsNewDayToOperator:=clsDayToOperator, clsNewCalcFromList:=clsDayFilterCalcFromList, strNewMainDataFrame:=ucrSelectorClimaticExtremes.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strNewDoyColumn:=ucrReceiverDOY.GetVariableNames(False)) + sdgDoyRange.Setup(clsNewDoyFilterCalc:=clsDayFromAndTo, clsNewIfElseFirstDoyFilledFunction:=clsIfElseFirstDoyFilledFunction, clsNewDayFromOperator:=clsDayFromOperator, clsNewDayToOperator:=clsDayToOperator, clsNewCalcFromList:=clsDayFilterCalcFromList, strNewMainDataFrame:=ucrSelectorClimaticExtremes.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strNewDoyColumn:=ucrReceiverDOY.GetVariableNames(False)) sdgDoyRange.ShowDialog() UpdateDayFilterPreview() End Sub diff --git a/instat/dlgHistogram.designer.vb b/instat/dlgHistogram.designer.vb index cd3e8c675ef..628d1a4a15b 100644 --- a/instat/dlgHistogram.designer.vb +++ b/instat/dlgHistogram.designer.vb @@ -56,7 +56,6 @@ Partial Class dlgHistogram Me.ucrNudMinHeight = New instat.ucrNud() Me.ucrChkMinHeight = New instat.ucrCheck() Me.ucrChkOmitYAxis = New instat.ucrCheck() - Me.ucrNudBinwidth = New instat.ucrNud() Me.ucrChkBinWidth = New instat.ucrCheck() Me.ucrInputStation = New instat.ucrInputComboBox() Me.ucr1stFactorReceiver = New instat.ucrReceiverSingle() @@ -74,6 +73,7 @@ Partial Class dlgHistogram Me.ucrHistogramSelector = New instat.ucrSelectorByDataFrameAddRemove() Me.ucrBase = New instat.ucrButtons() Me.ucrPnlOptions = New instat.UcrPanel() + Me.ucrInputWidth = New instat.ucrInputTextBox() Me.contextMenuStripOptions.SuspendLayout() Me.SuspendLayout() ' @@ -241,19 +241,6 @@ Partial Class dlgHistogram Me.ucrChkOmitYAxis.Size = New System.Drawing.Size(143, 23) Me.ucrChkOmitYAxis.TabIndex = 42 ' - 'ucrNudBinwidth - ' - Me.ucrNudBinwidth.AutoSize = True - Me.ucrNudBinwidth.DecimalPlaces = New Decimal(New Integer() {0, 0, 0, 0}) - Me.ucrNudBinwidth.Increment = New Decimal(New Integer() {1, 0, 0, 0}) - Me.ucrNudBinwidth.Location = New System.Drawing.Point(139, 262) - Me.ucrNudBinwidth.Maximum = New Decimal(New Integer() {100, 0, 0, 0}) - Me.ucrNudBinwidth.Minimum = New Decimal(New Integer() {0, 0, 0, 0}) - Me.ucrNudBinwidth.Name = "ucrNudBinwidth" - Me.ucrNudBinwidth.Size = New System.Drawing.Size(50, 20) - Me.ucrNudBinwidth.TabIndex = 41 - Me.ucrNudBinwidth.Value = New Decimal(New Integer() {0, 0, 0, 0}) - ' 'ucrChkBinWidth ' Me.ucrChkBinWidth.AutoSize = True @@ -439,14 +426,26 @@ Partial Class dlgHistogram Me.ucrPnlOptions.Size = New System.Drawing.Size(433, 30) Me.ucrPnlOptions.TabIndex = 0 ' + 'ucrInputWidth + ' + Me.ucrInputWidth.AddQuotesIfUnrecognised = True + Me.ucrInputWidth.AutoSize = True + Me.ucrInputWidth.IsMultiline = False + Me.ucrInputWidth.IsReadOnly = False + Me.ucrInputWidth.Location = New System.Drawing.Point(139, 262) + Me.ucrInputWidth.Margin = New System.Windows.Forms.Padding(9) + Me.ucrInputWidth.Name = "ucrInputWidth" + Me.ucrInputWidth.Size = New System.Drawing.Size(69, 21) + Me.ucrInputWidth.TabIndex = 92 + ' 'dlgHistogram ' Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi Me.AutoSize = True Me.ClientSize = New System.Drawing.Size(448, 461) + Me.Controls.Add(Me.ucrInputWidth) Me.Controls.Add(Me.ucrNudMinHeight) - Me.Controls.Add(Me.ucrNudBinwidth) Me.Controls.Add(Me.ucrChkOmitYAxis) Me.Controls.Add(Me.ucrInputStation) Me.Controls.Add(Me.ucr1stFactorReceiver) @@ -512,7 +511,6 @@ Partial Class dlgHistogram Friend WithEvents ucrInputAddReorder As ucrInputComboBox Friend WithEvents ucrChkBinWidth As ucrCheck - Friend WithEvents ucrNudBinwidth As ucrNud Friend WithEvents ucrChkOmitYAxis As ucrCheck Friend WithEvents ucrNudMinHeight As ucrNud Friend WithEvents ucrChkMinHeight As ucrCheck @@ -522,5 +520,5 @@ Partial Class dlgHistogram Friend WithEvents lblFacetBy As Label Friend WithEvents ucrInputLegendPosition As ucrInputComboBox Friend WithEvents ucrChkLegend As ucrCheck - + Friend WithEvents ucrInputWidth As ucrInputTextBox End Class \ No newline at end of file diff --git a/instat/dlgHistogram.vb b/instat/dlgHistogram.vb index 17dbfb99324..6de82429e66 100644 --- a/instat/dlgHistogram.vb +++ b/instat/dlgHistogram.vb @@ -134,14 +134,10 @@ Public Class dlgHistogram ucrChkOmitYAxis.SetText("Omit Y Axis") ucrChkBinWidth.SetText("Binwidth") - ucrChkBinWidth.AddToLinkedControls({ucrNudBinwidth}, {True}, bNewLinkedHideIfParameterMissing:=True) - - ucrNudBinwidth.SetParameter(New RParameter("binwidth", 3)) - ucrNudBinwidth.SetMinMax(0.00, 10.0) - ucrNudBinwidth.DecimalPlaces = 2 - ucrNudBinwidth.Increment = 0.01 - ucrNudBinwidth.SetRDefault(1.5) + ucrChkBinWidth.AddToLinkedControls({ucrInputWidth}, {True}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=1.5) + ucrInputWidth.SetParameter(New RParameter("binwidth", 3)) + ucrInputWidth.SetValidationTypeAsNumeric() ucrChkRidges.SetText("Density Ridges") ucrChkRidges.AddFunctionNamesCondition(True, "geom_density_ridges") @@ -327,7 +323,7 @@ Public Class dlgHistogram ucrChkLegend.SetRCode(clsThemeFunction, bReset, bCloneIfNeeded:=True) ucrInputLegendPosition.SetRCode(clsThemeFunction, bReset, bCloneIfNeeded:=True) - ucrNudBinwidth.SetRCode(clsRgeomPlotFunction, bReset) + ucrInputWidth.SetRCode(clsRgeomPlotFunction, bReset) ucrNudMinHeight.SetRCode(clsRgeomPlotFunction, bReset) ucrChkOmitYAxis.SetRCode(clsBaseOperator, bReset) If bReset Then @@ -493,7 +489,7 @@ Public Class dlgHistogram End If End Sub - Private Sub ucrPnlOptions_Control() Handles ucrPnlOptions.ControlValueChanged, ucrChkDisplayAsDotPlot.ControlValueChanged, ucrChkRidges.ControlValueChanged, ucrFactorReceiver.ControlValueChanged, ucrVariablesAsFactorforHist.ControlValueChanged, ucrInputAddReorder.ControlValueChanged, ucrChkOmitYAxis.ControlValueChanged, ucrNudBinwidth.ControlValueChanged + Private Sub ucrPnlOptions_Control() Handles ucrPnlOptions.ControlValueChanged, ucrChkDisplayAsDotPlot.ControlValueChanged, ucrChkRidges.ControlValueChanged, ucrFactorReceiver.ControlValueChanged, ucrVariablesAsFactorforHist.ControlValueChanged, ucrInputAddReorder.ControlValueChanged, ucrChkOmitYAxis.ControlValueChanged, ucrInputWidth.ControlValueChanged toolStripMenuItemHistogramOptions.Enabled = rdoHistogram.Checked AndAlso Not ucrChkDisplayAsDotPlot.Checked toolStripMenuItemDotOptions.Enabled = rdoHistogram.Checked AndAlso ucrChkDisplayAsDotPlot.Checked toolStripMenuItemDensityOptions.Enabled = rdoDensity_ridges.Checked AndAlso Not ucrChkRidges.Checked @@ -604,7 +600,7 @@ Public Class dlgHistogram Me.ucrChkLegend.Location = New Point(11, 329) Me.ucrChkBinWidth.Location = New Point(10, 262) Me.ucrChkOmitYAxis.Location = New Point(10, 287) - Me.ucrNudBinwidth.Location = New Point(139, 262) + Me.ucrInputWidth.Location = New Point(139, 262) Me.ucrInputStation.Location = New Point(318, 328) Me.ucrInputLegendPosition.Location = New Point(87, 328) Me.ucr1stFactorReceiver.Location = New Point(205, 329) @@ -630,7 +626,7 @@ Public Class dlgHistogram Me.ucrSaveHist.Location = New Point(10, 330) Me.ucrChkBinWidth.Location = New Point(10, 262) Me.ucrChkLegend.Location = New Point(11, 296) - Me.ucrNudBinwidth.Location = New Point(139, 262) + Me.ucrInputWidth.Location = New Point(139, 262) Me.ucrInputStation.Location = New Point(318, 294) Me.ucrInputLegendPosition.Location = New Point(87, 294) Me.ucr1stFactorReceiver.Location = New Point(205, 296) @@ -760,9 +756,9 @@ Public Class dlgHistogram End Sub - Private Sub ucrChkBinWidth_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkBinWidth.ControlValueChanged, ucrNudBinwidth.ControlValueChanged + Private Sub ucrChkBinWidth_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkBinWidth.ControlValueChanged, ucrInputWidth.ControlValueChanged If ucrChkBinWidth.Checked Then - clsRgeomPlotFunction.AddParameter("binwidth", ucrNudBinwidth.GetText, iPosition:=4) + clsRgeomPlotFunction.AddParameter("binwidth", ucrInputWidth.GetText, iPosition:=4) Else clsRgeomPlotFunction.RemoveParameterByName("binwidth") End If @@ -822,7 +818,7 @@ Public Class dlgHistogram SetPipeAssignTo() End Sub - Private Sub CoreControls_ControlContentsChanged() Handles ucrVariablesAsFactorforHist.ControlContentsChanged, ucrSaveHist.ControlContentsChanged, ucrFactorReceiver.ControlContentsChanged, ucrChkRidges.ControlContentsChanged, ucrInputAddReorder.ControlContentsChanged, ucrChkBinWidth.ControlContentsChanged, ucrNudBinwidth.ControlContentsChanged, ucrNudMinHeight.ControlContentsChanged + Private Sub CoreControls_ControlContentsChanged() Handles ucrVariablesAsFactorforHist.ControlContentsChanged, ucrSaveHist.ControlContentsChanged, ucrFactorReceiver.ControlContentsChanged, ucrChkRidges.ControlContentsChanged, ucrInputAddReorder.ControlContentsChanged, ucrChkBinWidth.ControlContentsChanged, ucrInputWidth.ControlContentsChanged, ucrNudMinHeight.ControlContentsChanged TestOkEnabled() End Sub End Class \ No newline at end of file diff --git a/instat/dlgMakeDate.vb b/instat/dlgMakeDate.vb index 44d4c52cc9d..799e6e30052 100644 --- a/instat/dlgMakeDate.vb +++ b/instat/dlgMakeDate.vb @@ -36,6 +36,7 @@ Public Class dlgMakeDate Private clsGregorianDefault, clsJulianDateDefault, clsAsCharacterFunction, clsDummyFunction As New RFunction Private clsDefaultFunction As New RFunction Private clsConcFunction As New RFunction + Private clsNumericFunction As New RFunction Private clsDivisionOperator, clsMultiplicationOperator As New ROperator Private Sub dlgMakeDate_Load(sender As Object, e As EventArgs) Handles MyBase.Load @@ -324,6 +325,7 @@ Public Class dlgMakeDate clsDivisionOperator = New ROperator clsMultiplicationOperator = New ROperator clsDummyFunction = New RFunction + clsNumericFunction = New RFunction clsDefaultFunction = New RFunction clsConcFunction = New RFunction @@ -351,9 +353,10 @@ Public Class dlgMakeDate clsMakeYearMonthDay.AddParameter("month_format", Chr(34) & "%m" & Chr(34)) clsDateFunction.SetRCommand("as.Date") - clsDateFunction.AddParameter("x", clsROperatorParameter:=clsDivisionOperator, iPosition:=0) clsDateFunction.AddParameter("origin", clsRFunctionParameter:=clsDefaultDate, iPosition:=1) + clsNumericFunction.SetRCommand("as.numeric") + clsDivisionOperator.SetOperation("/") clsDivisionOperator.bAllBrackets = True @@ -524,22 +527,26 @@ Public Class dlgMakeDate Private Sub ucrPnlFormat_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlFormat.ControlValueChanged, ucrInputFormat.ControlValueChanged, ucrInputOrigin.ControlValueChanged ucrReceiverForDate.RemoveIncludedMetadataProperty("class") clsDateFunction.RemoveParameterByName("yearmoda") - clsDateFunction.AddParameter("x", clsROperatorParameter:=clsDivisionOperator, iPosition:=0) + clsNumericFunction.RemoveParameterByName("number") If rdoDefaultFormat.Checked Then cmdHelp.Visible = False - ucrReceiverForDate.SetExcludedDataTypes({"numeric"}) clsDateFunction.RemoveParameterByName("format") clsDateFunction.RemoveParameterByName("origin") + clsDateFunction.AddParameter("x", clsROperatorParameter:=clsDivisionOperator, iPosition:=0) ElseIf rdoOrigin.Checked Then cmdHelp.Visible = False - ucrReceiverForDate.SetIncludedDataTypes({"numeric", "date"}) If ucrInputOrigin.GetText = "Excel (1899/12/30)" Then + clsNumericFunction.AddParameter("number", clsROperatorParameter:=clsDivisionOperator, iPosition:=0, bIncludeArgumentName:=False) + clsDateFunction.AddParameter("x", clsRFunctionParameter:=clsNumericFunction, iPosition:=0) clsDateFunction.AddParameter("origin", clsRFunctionParameter:=clsDefaultDate) ElseIf ucrInputOrigin.GetText = "Gregorian (1600/03/01)" Then + clsDateFunction.AddParameter("x", clsROperatorParameter:=clsDivisionOperator, iPosition:=0) clsDateFunction.AddParameter("origin", clsRFunctionParameter:=clsGregorianDefault) ElseIf ucrInputOrigin.GetText = "Julian Day Number (-4713/11/24)" Then + clsDateFunction.AddParameter("x", clsROperatorParameter:=clsDivisionOperator, iPosition:=0) clsDateFunction.AddParameter("origin", clsRFunctionParameter:=clsJulianDateDefault) ElseIf ucrInputOrigin.GetText = "R (1970/01/01)" Then + clsDateFunction.AddParameter("x", clsROperatorParameter:=clsDivisionOperator, iPosition:=0) clsDateFunction.AddParameter("origin", clsRFunctionParameter:=clsRDefaultDate) End If ElseIf rdoSpecifyFormat.Checked Then diff --git a/instat/dlgMosaicPlot.Designer.vb b/instat/dlgMosaicPlot.Designer.vb index dfe34001258..9bc671568e6 100644 --- a/instat/dlgMosaicPlot.Designer.vb +++ b/instat/dlgMosaicPlot.Designer.vb @@ -42,12 +42,24 @@ Partial Class dlgMosaicPlot Me.contextMenuStripOptions = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.toolStripMenuItemPlotOptions = New System.Windows.Forms.ToolStripMenuItem() Me.toolStripMenuItemMosaicOptions = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuItemMosaicJitter = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuItemMosaicText = New System.Windows.Forms.ToolStripMenuItem() Me.cmdOptions = New instat.ucrSplitButton() Me.ucrInputStation = New instat.ucrInputComboBox() Me.ucr1stFactorReceiver = New instat.ucrReceiverSingle() Me.lblFacetBy = New System.Windows.Forms.Label() Me.ucrInputLegendPosition = New instat.ucrInputComboBox() Me.ucrChkLegend = New instat.ucrCheck() + Me.ucrChkJitter = New instat.ucrCheck() + Me.lblSizeJitter = New System.Windows.Forms.Label() + Me.ucrNudJitter = New instat.ucrNud() + Me.lblColourJitter = New System.Windows.Forms.Label() + Me.ucrColors = New instat.ucrColors() + Me.ucrColorsLabel = New instat.ucrColors() + Me.lblColourLabel = New System.Windows.Forms.Label() + Me.ucrNudSizeLabel = New instat.ucrNud() + Me.lblSizeLabel = New System.Windows.Forms.Label() + Me.ucrChkLabel = New instat.ucrCheck() Me.contextMenuStripOptions.SuspendLayout() Me.SuspendLayout() ' @@ -106,7 +118,7 @@ Partial Class dlgMosaicPlot Me.ucrNudXAxisLabelsAngle.AutoSize = True Me.ucrNudXAxisLabelsAngle.DecimalPlaces = New Decimal(New Integer() {0, 0, 0, 0}) Me.ucrNudXAxisLabelsAngle.Increment = New Decimal(New Integer() {1, 0, 0, 0}) - Me.ucrNudXAxisLabelsAngle.Location = New System.Drawing.Point(183, 326) + Me.ucrNudXAxisLabelsAngle.Location = New System.Drawing.Point(140, 326) Me.ucrNudXAxisLabelsAngle.Maximum = New Decimal(New Integer() {100, 0, 0, 0}) Me.ucrNudXAxisLabelsAngle.Minimum = New Decimal(New Integer() {0, 0, 0, 0}) Me.ucrNudXAxisLabelsAngle.Name = "ucrNudXAxisLabelsAngle" @@ -189,7 +201,7 @@ Partial Class dlgMosaicPlot 'ucrSaveMosaicPlot ' Me.ucrSaveMosaicPlot.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrSaveMosaicPlot.Location = New System.Drawing.Point(9, 422) + Me.ucrSaveMosaicPlot.Location = New System.Drawing.Point(9, 513) Me.ucrSaveMosaicPlot.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.ucrSaveMosaicPlot.Name = "ucrSaveMosaicPlot" Me.ucrSaveMosaicPlot.Size = New System.Drawing.Size(317, 24) @@ -220,29 +232,41 @@ Partial Class dlgMosaicPlot ' Me.ucrBase.AutoSize = True Me.ucrBase.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrBase.Location = New System.Drawing.Point(12, 455) + Me.ucrBase.Location = New System.Drawing.Point(14, 544) Me.ucrBase.Name = "ucrBase" Me.ucrBase.Size = New System.Drawing.Size(408, 52) Me.ucrBase.TabIndex = 17 ' 'contextMenuStripOptions ' - Me.contextMenuStripOptions.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.toolStripMenuItemPlotOptions, Me.toolStripMenuItemMosaicOptions}) + Me.contextMenuStripOptions.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.toolStripMenuItemPlotOptions, Me.toolStripMenuItemMosaicOptions, Me.ToolStripMenuItemMosaicJitter, Me.ToolStripMenuItemMosaicText}) Me.contextMenuStripOptions.Name = "contextMenuStripOk" - Me.contextMenuStripOptions.Size = New System.Drawing.Size(158, 48) + Me.contextMenuStripOptions.Size = New System.Drawing.Size(186, 92) ' 'toolStripMenuItemPlotOptions ' Me.toolStripMenuItemPlotOptions.Name = "toolStripMenuItemPlotOptions" - Me.toolStripMenuItemPlotOptions.Size = New System.Drawing.Size(157, 22) + Me.toolStripMenuItemPlotOptions.Size = New System.Drawing.Size(185, 22) Me.toolStripMenuItemPlotOptions.Text = "Plot Options" ' 'toolStripMenuItemMosaicOptions ' Me.toolStripMenuItemMosaicOptions.Name = "toolStripMenuItemMosaicOptions" - Me.toolStripMenuItemMosaicOptions.Size = New System.Drawing.Size(157, 22) + Me.toolStripMenuItemMosaicOptions.Size = New System.Drawing.Size(185, 22) Me.toolStripMenuItemMosaicOptions.Text = "Mosaic Options" ' + 'ToolStripMenuItemMosaicJitter + ' + Me.ToolStripMenuItemMosaicJitter.Name = "ToolStripMenuItemMosaicJitter" + Me.ToolStripMenuItemMosaicJitter.Size = New System.Drawing.Size(185, 22) + Me.ToolStripMenuItemMosaicJitter.Text = "Mosaic Jitter Options" + ' + 'ToolStripMenuItemMosaicText + ' + Me.ToolStripMenuItemMosaicText.Name = "ToolStripMenuItemMosaicText" + Me.ToolStripMenuItemMosaicText.Size = New System.Drawing.Size(185, 22) + Me.ToolStripMenuItemMosaicText.Text = "Mosaic Text Options" + ' 'cmdOptions ' Me.cmdOptions.AllowDrop = True @@ -312,12 +336,132 @@ Partial Class dlgMosaicPlot Me.ucrChkLegend.Size = New System.Drawing.Size(98, 24) Me.ucrChkLegend.TabIndex = 97 ' + 'ucrChkJitter + ' + Me.ucrChkJitter.AutoSize = True + Me.ucrChkJitter.Checked = False + Me.ucrChkJitter.Location = New System.Drawing.Point(9, 429) + Me.ucrChkJitter.Name = "ucrChkJitter" + Me.ucrChkJitter.Size = New System.Drawing.Size(98, 24) + Me.ucrChkJitter.TabIndex = 99 + ' + 'lblSizeJitter + ' + Me.lblSizeJitter.AutoSize = True + Me.lblSizeJitter.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lblSizeJitter.Location = New System.Drawing.Point(104, 431) + Me.lblSizeJitter.Name = "lblSizeJitter" + Me.lblSizeJitter.Size = New System.Drawing.Size(30, 13) + Me.lblSizeJitter.TabIndex = 100 + Me.lblSizeJitter.Tag = "" + Me.lblSizeJitter.Text = "Size:" + ' + 'ucrNudJitter + ' + Me.ucrNudJitter.AutoSize = True + Me.ucrNudJitter.DecimalPlaces = New Decimal(New Integer() {0, 0, 0, 0}) + Me.ucrNudJitter.Increment = New Decimal(New Integer() {1, 0, 0, 0}) + Me.ucrNudJitter.Location = New System.Drawing.Point(140, 430) + Me.ucrNudJitter.Maximum = New Decimal(New Integer() {100, 0, 0, 0}) + Me.ucrNudJitter.Minimum = New Decimal(New Integer() {0, 0, 0, 0}) + Me.ucrNudJitter.Name = "ucrNudJitter" + Me.ucrNudJitter.Size = New System.Drawing.Size(50, 20) + Me.ucrNudJitter.TabIndex = 101 + Me.ucrNudJitter.Value = New Decimal(New Integer() {0, 0, 0, 0}) + ' + 'lblColourJitter + ' + Me.lblColourJitter.AutoSize = True + Me.lblColourJitter.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lblColourJitter.Location = New System.Drawing.Point(224, 431) + Me.lblColourJitter.Name = "lblColourJitter" + Me.lblColourJitter.Size = New System.Drawing.Size(40, 13) + Me.lblColourJitter.TabIndex = 102 + Me.lblColourJitter.Tag = "" + Me.lblColourJitter.Text = "Colour:" + ' + 'ucrColors + ' + Me.ucrColors.AddQuotesIfUnrecognised = True + Me.ucrColors.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ucrColors.GetSetSelectedIndex = -1 + Me.ucrColors.IsReadOnly = False + Me.ucrColors.Location = New System.Drawing.Point(272, 428) + Me.ucrColors.Name = "ucrColors" + Me.ucrColors.Size = New System.Drawing.Size(70, 22) + Me.ucrColors.TabIndex = 202 + ' + 'ucrColorsLabel + ' + Me.ucrColorsLabel.AddQuotesIfUnrecognised = True + Me.ucrColorsLabel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ucrColorsLabel.GetSetSelectedIndex = -1 + Me.ucrColorsLabel.IsReadOnly = False + Me.ucrColorsLabel.Location = New System.Drawing.Point(272, 473) + Me.ucrColorsLabel.Name = "ucrColorsLabel" + Me.ucrColorsLabel.Size = New System.Drawing.Size(70, 22) + Me.ucrColorsLabel.TabIndex = 207 + ' + 'lblColourLabel + ' + Me.lblColourLabel.AutoSize = True + Me.lblColourLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lblColourLabel.Location = New System.Drawing.Point(224, 475) + Me.lblColourLabel.Name = "lblColourLabel" + Me.lblColourLabel.Size = New System.Drawing.Size(40, 13) + Me.lblColourLabel.TabIndex = 206 + Me.lblColourLabel.Tag = "" + Me.lblColourLabel.Text = "Colour:" + ' + 'ucrNudSizeLabel + ' + Me.ucrNudSizeLabel.AutoSize = True + Me.ucrNudSizeLabel.DecimalPlaces = New Decimal(New Integer() {0, 0, 0, 0}) + Me.ucrNudSizeLabel.Increment = New Decimal(New Integer() {1, 0, 0, 0}) + Me.ucrNudSizeLabel.Location = New System.Drawing.Point(140, 475) + Me.ucrNudSizeLabel.Maximum = New Decimal(New Integer() {100, 0, 0, 0}) + Me.ucrNudSizeLabel.Minimum = New Decimal(New Integer() {0, 0, 0, 0}) + Me.ucrNudSizeLabel.Name = "ucrNudSizeLabel" + Me.ucrNudSizeLabel.Size = New System.Drawing.Size(50, 20) + Me.ucrNudSizeLabel.TabIndex = 205 + Me.ucrNudSizeLabel.Value = New Decimal(New Integer() {0, 0, 0, 0}) + ' + 'lblSizeLabel + ' + Me.lblSizeLabel.AutoSize = True + Me.lblSizeLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lblSizeLabel.Location = New System.Drawing.Point(104, 475) + Me.lblSizeLabel.Name = "lblSizeLabel" + Me.lblSizeLabel.Size = New System.Drawing.Size(30, 13) + Me.lblSizeLabel.TabIndex = 204 + Me.lblSizeLabel.Tag = "" + Me.lblSizeLabel.Text = "Size:" + ' + 'ucrChkLabel + ' + Me.ucrChkLabel.AutoSize = True + Me.ucrChkLabel.Checked = False + Me.ucrChkLabel.Location = New System.Drawing.Point(9, 471) + Me.ucrChkLabel.Name = "ucrChkLabel" + Me.ucrChkLabel.Size = New System.Drawing.Size(98, 24) + Me.ucrChkLabel.TabIndex = 203 + ' 'dlgMosaicPlot ' Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi Me.AutoSize = True - Me.ClientSize = New System.Drawing.Size(441, 510) + Me.ClientSize = New System.Drawing.Size(441, 605) + Me.Controls.Add(Me.ucrColorsLabel) + Me.Controls.Add(Me.lblColourLabel) + Me.Controls.Add(Me.ucrNudSizeLabel) + Me.Controls.Add(Me.lblSizeLabel) + Me.Controls.Add(Me.ucrChkLabel) + Me.Controls.Add(Me.ucrColors) + Me.Controls.Add(Me.lblColourJitter) + Me.Controls.Add(Me.ucrNudJitter) + Me.Controls.Add(Me.lblSizeJitter) + Me.Controls.Add(Me.ucrChkJitter) Me.Controls.Add(Me.ucrInputStation) Me.Controls.Add(Me.ucr1stFactorReceiver) Me.Controls.Add(Me.lblFacetBy) @@ -378,4 +522,16 @@ Partial Class dlgMosaicPlot Friend WithEvents lblFacetBy As Label Friend WithEvents ucrInputLegendPosition As ucrInputComboBox Friend WithEvents ucrChkLegend As ucrCheck + Friend WithEvents ToolStripMenuItemMosaicJitter As ToolStripMenuItem + Friend WithEvents ToolStripMenuItemMosaicText As ToolStripMenuItem + Friend WithEvents lblColourJitter As Label + Friend WithEvents ucrNudJitter As ucrNud + Friend WithEvents lblSizeJitter As Label + Friend WithEvents ucrChkJitter As ucrCheck + Friend WithEvents ucrColors As ucrColors + Friend WithEvents ucrColorsLabel As ucrColors + Friend WithEvents lblColourLabel As Label + Friend WithEvents ucrNudSizeLabel As ucrNud + Friend WithEvents lblSizeLabel As Label + Friend WithEvents ucrChkLabel As ucrCheck End Class diff --git a/instat/dlgMosaicPlot.vb b/instat/dlgMosaicPlot.vb index 0b00c5c9d2d..d7417a9c538 100644 --- a/instat/dlgMosaicPlot.vb +++ b/instat/dlgMosaicPlot.vb @@ -19,7 +19,7 @@ Imports instat.Translations Public Class dlgMosaicPlot Private clsGgplotFunction As New RFunction - Private clsMosaicGeomFunction As New RFunction + Private clsMosaicGeomFunction, clsMosaicJitterFunction, clsMosaicTextFunction As New RFunction Private clsAesFunction As New RFunction Private clsBaseOperator As New ROperator Private clsLocalAesFunction As New RFunction @@ -82,6 +82,7 @@ Public Class dlgMosaicPlot Private Sub InitialiseDialog() Dim dctPartitionOptions As New Dictionary(Of String, String) Dim dctLegendPosition As New Dictionary(Of String, String) + Dim dctLabelColours As New Dictionary(Of String, String) ucrBase.clsRsyntax.bExcludeAssignedFunctionOutput = False ucrBase.iHelpTopicID = 594 @@ -172,6 +173,38 @@ Public Class dlgMosaicPlot ucrInputStation.SetItems({strFacetWrap, strFacetRow, strFacetCol, strNone}) ucrInputStation.SetDropDownStyleAsNonEditable() + ucrChkJitter.SetText("Jitter") + ucrChkJitter.AddParameterPresentCondition(True, "geom_mosaic_jitter") + ucrChkJitter.AddParameterPresentCondition(False, "geom_mosaic_jitter", False) + ucrChkJitter.AddToLinkedControls(ucrNudJitter, {True}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrChkJitter.AddToLinkedControls(ucrColors, {True}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:="black") + ucrColors.SetParameter(New RParameter("colour", 1)) + ucrColors.SetColours() + ucrColors.SetLinkedDisplayControl(lblColourJitter) + + ucrNudJitter.SetParameter(New RParameter("size", 0)) + ucrNudJitter.SetMinMax(0, 100) + ucrNudJitter.Increment = 0.1 + ucrNudJitter.DecimalPlaces = 1 + ucrNudJitter.SetLinkedDisplayControl(lblSizeJitter) + ucrNudJitter.SetRDefault(1.0) + + ucrChkLabel.SetText("Label") + ucrChkLabel.AddParameterPresentCondition(True, "geom_mosaic_text") + ucrChkLabel.AddParameterPresentCondition(False, "geom_mosaic_text", False) + ucrChkLabel.AddToLinkedControls(ucrNudSizeLabel, {True}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrChkLabel.AddToLinkedControls(ucrColorsLabel, {True}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:="black") + ucrColorsLabel.SetParameter(New RParameter("colour", 1)) + ucrColorsLabel.SetColours() + ucrColorsLabel.SetLinkedDisplayControl(lblColourLabel) + + ucrNudSizeLabel.SetParameter(New RParameter("size", 0)) + ucrNudSizeLabel.SetMinMax(0, 100) + ucrNudSizeLabel.Increment = 0.1 + ucrNudSizeLabel.DecimalPlaces = 1 + ucrNudSizeLabel.SetLinkedDisplayControl(lblSizeLabel) + ucrNudSizeLabel.SetRDefault(1.0) + ucrSaveMosaicPlot.SetPrefix("mosaic") ucrSaveMosaicPlot.SetIsComboBox() ucrSaveMosaicPlot.SetCheckBoxText("Store Graph") @@ -184,6 +217,8 @@ Public Class dlgMosaicPlot clsBaseOperator = New ROperator clsGgplotFunction = New RFunction clsMosaicGeomFunction = New RFunction + clsMosaicJitterFunction = New RFunction + clsMosaicTextFunction = New RFunction clsAesFunction = New RFunction clsLocalAesFunction = New RFunction @@ -199,7 +234,6 @@ Public Class dlgMosaicPlot ucrInputStation.SetName(strFacetWrap) ucrInputStation.bUpdateRCodeFromControl = True - ucrSelectorMosaicPlot.Reset() ucrSelectorMosaicPlot.SetGgplotFunction(clsBaseOperator) @@ -213,6 +247,14 @@ Public Class dlgMosaicPlot clsMosaicGeomFunction.SetRCommand("geom_mosaic") clsMosaicGeomFunction.AddParameter("mapping", clsRFunctionParameter:=clsLocalAesFunction, iPosition:=1) + clsMosaicJitterFunction.SetPackageName("ggmosaic") + clsMosaicJitterFunction.SetRCommand("geom_mosaic_jitter") + clsMosaicJitterFunction.AddParameter("mapping", clsRFunctionParameter:=clsLocalAesFunction, iPosition:=1) + + clsMosaicTextFunction.SetPackageName("ggmosaic") + clsMosaicTextFunction.SetRCommand("geom_mosaic_text") + clsMosaicTextFunction.AddParameter("mapping", clsRFunctionParameter:=clsLocalAesFunction, iPosition:=1) + clsLocalAesFunction.SetPackageName("ggplot2") clsLocalAesFunction.SetRCommand("aes") @@ -273,8 +315,16 @@ Public Class dlgMosaicPlot bRCodeSet = False ucrSelectorMosaicPlot.SetRCode(clsGgplotFunction, bReset) - ucrReceiverX.SetRCode(clsLocalAesFunction, bReset) - ucrReceiverFill.SetRCode(clsLocalAesFunction, bReset) + If bReset Then + ucrReceiverX.SetRCode(clsLocalAesFunction, bReset) + ucrReceiverFill.SetRCode(clsLocalAesFunction, bReset) + ucrColors.SetRCode(clsMosaicJitterFunction, bReset) + ucrNudJitter.SetRCode(clsMosaicJitterFunction, bReset) + ucrChkJitter.SetRCode(clsMosaicJitterFunction, bReset) + ucrColorsLabel.SetRCode(clsMosaicTextFunction, bReset) + ucrNudSizeLabel.SetRCode(clsMosaicTextFunction, bReset) + ucrChkLabel.SetRCode(clsMosaicTextFunction, bReset) + End If ucrReceiverConditions.SetRCode(clsLocalAesFunction, bReset) ucrReceiverWeights.SetRCode(clsLocalAesFunction, bReset) @@ -472,7 +522,6 @@ Public Class dlgMosaicPlot Private Sub ucrReceiverX_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverX.ControlValueChanged Dim iXVarCount As Integer - iXVarCount = lstPreviousXVars.Count If bRCodeSet Then If lstPreviousXVars.Contains(ucrReceiverFill.GetVariableNames(False)) AndAlso Not ucrReceiverX.GetVariableNamesAsList().Contains(ucrReceiverFill.GetVariableNames(False)) Then @@ -545,7 +594,7 @@ Public Class dlgMosaicPlot End Sub Private Sub toolStripMenuItemMosaicOptions_Click(sender As Object, e As EventArgs) Handles toolStripMenuItemMosaicOptions.Click - sdgLayerOptions.SetupLayer(clsNewGgPlot:=clsGgplotFunction, clsNewGeomFunc:=clsMosaicGeomFunction, clsNewGlobalAesFunc:=clsAesFunction, clsNewLocalAes:=clsLocalAesFunction, bFixGeom:=True, ucrNewBaseSelector:=ucrSelectorMosaicPlot, bApplyAesGlobally:=False, bReset:=bResetBoxLayerSubdialog) + sdgLayerOptions.SetupLayer(clsNewGgPlot:=clsGgplotFunction, clsNewGeomFunc:=clsMosaicGeomFunction, clsNewGlobalAesFunc:=clsLocalAesFunction, clsNewLocalAes:=clsAesFunction, bFixGeom:=True, ucrNewBaseSelector:=ucrSelectorMosaicPlot, bApplyAesGlobally:=False, bReset:=bResetBoxLayerSubdialog) sdgLayerOptions.tbcLayers.SelectedTab = sdgLayerOptions.tbpGeomParameters sdgLayerOptions.tbpAesthetics.Enabled = False sdgLayerOptions.ShowDialog() @@ -553,4 +602,90 @@ Public Class dlgMosaicPlot bResetBoxLayerSubdialog = False SetRCodeForControls(False) End Sub + + Private Sub openSdgLayerOptions(clsNewGeomFunc As RFunction) + sdgLayerOptions.SetupLayer(clsNewGgPlot:=clsGgplotFunction, clsNewGeomFunc:=clsNewGeomFunc, + clsNewGlobalAesFunc:=clsAesFunction, clsNewLocalAes:=clsLocalAesFunction, + bFixGeom:=True, ucrNewBaseSelector:=ucrSelectorMosaicPlot, + bApplyAesGlobally:=False, bReset:=bResetBoxLayerSubdialog) + sdgLayerOptions.ShowDialog() + bResetBoxLayerSubdialog = False + 'Coming from the sdgLayerOptions, clsRaesFunction and others have been modified. + ' One then needs to display these modifications on the dlgScatteredPlot. + + 'The aesthetics parameters on the main dialog are repopulated as required. + For Each clsParam In clsLocalAesFunction.clsParameters + If clsParam.strArgumentName = "x" Then + If clsParam.strArgumentValue = Chr(34) & Chr(34) Then + ucrReceiverX.Clear() + Else + ucrReceiverX.Add(clsParam.strArgumentValue) + End If + 'In the y case, the value stored in the clsReasFunction in the multiple variables + ' case is "value", however that one shouldn't be written in the multiple + ' variables receiver (otherwise it would stack all variables and the stack + ' ("value") itself!). + 'Warning: what if someone used the name value for one of it's variables + ' independently from the multiple variables method? Here if the receiver is + ' actually in single mode, the variable "value" will still be given back, which + ' throws the problem back to the creation of "value" in the multiple receiver case. + ElseIf clsParam.strArgumentName = "conds" AndAlso (clsParam.strArgumentValue <> "value") Then + 'Still might be in the case of bSingleVariable with mapping y="". + If clsParam.strArgumentValue = Chr(34) & Chr(34) Then + 'ucrReceiverConditions.Clear() + Else + ucrReceiverConditions.Add(clsParam.strArgumentValue) + End If + ElseIf clsParam.strArgumentName = "fill" Then + ucrReceiverFill.Add(clsParam.strArgumentValue) + End If + Next + TestOkEnabled() + End Sub + + Private Sub ToolStripMenuItemMosaicJitter_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItemMosaicJitter.Click + openSdgLayerOptions(clsMosaicJitterFunction) + End Sub + + Private Sub ToolStripMenuItemMosaicText_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItemMosaicText.Click + openSdgLayerOptions(clsMosaicTextFunction) + End Sub + + Private Sub ucrChkJitter_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkJitter.ControlValueChanged, ucrColors.ControlValueChanged, ucrNudJitter.ControlValueChanged + If ucrChkJitter.Checked Then + clsBaseOperator.AddParameter("geom_mosaic_jitter", clsRFunctionParameter:=clsMosaicJitterFunction) + If Not ucrColors.IsEmpty Then + clsMosaicJitterFunction.AddParameter("colour", Chr(34) & ucrColors.GetText & Chr(34), iPosition:=1) + Else + clsMosaicJitterFunction.RemoveParameterByName("colour") + End If + If Not ucrNudJitter.IsEmpty Then + clsMosaicJitterFunction.AddParameter("size", ucrNudJitter.GetText(), iPosition:=0) + Else + clsMosaicJitterFunction.RemoveParameterByName("size") + End If + Else + clsBaseOperator.RemoveParameterByName("geom_mosaic_jitter") + End If + ToolStripMenuItemMosaicJitter.Enabled = ucrChkJitter.Checked + End Sub + + Private Sub ucrChkLabel_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkLabel.ControlValueChanged, ucrColorsLabel.ControlValueChanged, ucrNudSizeLabel.ControlValueChanged + If ucrChkLabel.Checked Then + clsBaseOperator.AddParameter("geom_mosaic_text", clsRFunctionParameter:=clsMosaicTextFunction) + If Not ucrColorsLabel.IsEmpty Then + clsMosaicTextFunction.AddParameter("colour", Chr(34) & ucrColorsLabel.GetText & Chr(34), iPosition:=1) + Else + clsMosaicTextFunction.RemoveParameterByName("colour") + End If + If Not ucrNudSizeLabel.IsEmpty Then + clsMosaicTextFunction.AddParameter("size", ucrNudSizeLabel.GetText(), iPosition:=0) + Else + clsMosaicTextFunction.RemoveParameterByName("size") + End If + Else + clsBaseOperator.RemoveParameterByName("geom_mosaic_text") + End If + ToolStripMenuItemMosaicText.Enabled = ucrChkLabel.Checked + End Sub End Class \ No newline at end of file diff --git a/instat/dlgName.vb b/instat/dlgName.vb index 0be8141d4ab..aa20aad2e66 100644 --- a/instat/dlgName.vb +++ b/instat/dlgName.vb @@ -34,6 +34,7 @@ Public Class dlgName Private clsStartwithFunction, clsRegexFunction, clsEndswithFunction, clsMatchesFunction, clsContainsFunction As New RFunction Private WithEvents grdCurrentWorkSheet As Worksheet Private dctRowsNewNameChanged As New Dictionary(Of Integer, String) + Private dctRowsCurrentName As New Dictionary(Of Integer, String) Private dctRowsNewLabelChanged As New Dictionary(Of Integer, String) Private dctNameRowsValues As New Dictionary(Of Integer, String) Private dctCaseOptions As New Dictionary(Of String, String) @@ -99,7 +100,7 @@ Public Class dlgName ucrPnlCase.AddRadioButton(rdoAbbreviate, "abbreviate") ucrPnlCase.AddRadioButton(rdoReplace, "stringr::str_replace") - ucrPnlSelectData.SetParameter(New RParameter("data", 0)) + ucrPnlSelectData.AddRadioButton(rdoWholeDataFrame) ucrPnlSelectData.AddRadioButton(rdoSelectedColumn) ucrPnlSelectData.AddParameterValuesCondition(rdoWholeDataFrame, "checked", "whole") @@ -189,6 +190,7 @@ Public Class dlgName ucrSelectVariables.Reset() dctRowsNewNameChanged.Clear() dctRowsNewLabelChanged.Clear() + dctRowsCurrentName.Clear() bCurrentCell = False clsNewColNameDataframeFunction.SetRCommand("data.frame") @@ -353,10 +355,14 @@ Public Class dlgName If e.Range.Rows > 1 Then For iRow As Integer = iStartRowIndex To grdCurrentWorkSheet.SelectionRange.EndRow Dim strNewData As String = ValidateRVariable(grdCurrentWorkSheet.GetCellData(row:=iRow, col:=iColIndex), iColIndex) + Dim strOldData As String = grdCurrentWorkSheet.GetCellData(row:=iRow, col:=0) + GetOldNames(iRow, strOldData) RenameColumns(strNewData, iRow, iColIndex) Next Else Dim strNewData As String = ValidateRVariable(grdCurrentWorkSheet.GetCellData(row:=e.Range.Row, col:=iColIndex), iColIndex) + Dim strOldData As String = grdCurrentWorkSheet.GetCellData(row:=e.Range.Row, col:=0) + GetOldNames(e.Range.Row, strOldData) RenameColumns(strNewData, iStartRowIndex, iColIndex) End If ValidateNamesFromDictionary(iColIndex) @@ -406,10 +412,22 @@ Public Class dlgName Private Sub grdCurrSheet_AfterCellEdit(sender As Object, e As CellAfterEditEventArgs) Handles grdCurrentWorkSheet.AfterCellEdit Dim iCol As Integer = e.Cell.Column Dim strNewData As String = ValidateRVariable(e.NewData, iCol) + + Dim strFirstColumnData As String = grdCurrentWorkSheet(e.Cell.Row, 0).ToString() + + GetOldNames(e.Cell.Row, strFirstColumnData) RenameColumns(strNewData, e.Cell.Row, iCol) ValidateNamesFromDictionary(iCol) End Sub + Private Sub GetOldNames(iRow As Integer, strOldName As String) + If Not dctRowsCurrentName.ContainsKey(iRow) Then + dctRowsCurrentName.Add(iRow, strOldName) + Else + dctRowsCurrentName(iRow) = strOldName + End If + End Sub + Private Sub GetVariables(strNewData As String, iRowIndex As Integer, iColIndex As Integer) If rdoMultiple.Checked Then If iColIndex = 1 Then @@ -417,7 +435,7 @@ Public Class dlgName AddChangedNewNameRows(iRowIndex, strNewData) clsNewColNameDataframeFunction.AddParameter("cols", GetValuesAsVector(dctRowsNewNameChanged), iPosition:=0) - clsNewColNameDataframeFunction.AddParameter("index", "c(" & String.Join(",", dctRowsNewNameChanged.Keys.ToArray) & ")", iPosition:=1) + clsNewColNameDataframeFunction.AddParameter("old_names", GetValuesAsVector(dctRowsCurrentName), iPosition:=1) clsDefaultRFunction.AddParameter("new_column_names_df", clsRFunctionParameter:=clsNewColNameDataframeFunction, iPosition:=8) Else clsNewColNameDataframeFunction.RemoveParameterByName("cols") @@ -602,7 +620,9 @@ Public Class dlgName rdoReplace.Visible = rdoWholeDataFrame.Checked If rdoWholeDataFrame.Checked Then ucrReceiverColumns.Visible = False + clsDummyFunction.AddParameter("checked", "whole", iPosition:=1) Else + clsDummyFunction.AddParameter("checked", "selected", iPosition:=1) ucrReceiverColumns.SetMeAsReceiver() If rdoReplace.Checked Then rdoMakeCleanNames.Checked = True @@ -681,6 +701,8 @@ Public Class dlgName Dim parsedValue As Boolean Dim strNewData As String = ValidateRVariable(e.Text, iCol) If Not strNewData.ToLower.Equals("t") AndAlso Not strNewData.ToLower.Equals("f") AndAlso Not IsNumeric(strNewData) AndAlso Not Boolean.TryParse(strNewData, parsedValue) Then + Dim strFirstColumnData As String = grdCurrentWorkSheet(e.Cell.Row, 0).ToString() + GetOldNames(e.Cell.Row, strFirstColumnData) RenameColumns(strNewData, e.Cell.Row, iCol) ValidateNamesFromDictionary(iCol) End If @@ -713,6 +735,7 @@ Public Class dlgName clsDefaultRFunction.AddParameter(".cols", clsRFunctionParameter:=clsContainsFunction, iPosition:=3) clsDefaultRFunction.AddParameter(".fn", "stringr::str_replace_all", iPosition:=2) End Select + Else clsDefaultRFunction.RemoveParameterByName("replacement") clsDefaultRFunction.RemoveParameterByName(".cols") diff --git a/instat/dlgOneVariableSummarise.vb b/instat/dlgOneVariableSummarise.vb index d91b5a62f91..e6aa640b043 100644 --- a/instat/dlgOneVariableSummarise.vb +++ b/instat/dlgOneVariableSummarise.vb @@ -32,8 +32,7 @@ Public Class dlgOneVariableSummarise clsSkimrFunction, clsPivotWiderFunction As New RFunction Private clsPipeOperator, clsJoiningPipeOperator As New ROperator - Private clsGetGtTableFunction As New RFunction - Private clsGtTableROperator As New ROperator + Private clsSummaryOperator As New ROperator Private bResetSubdialog As Boolean = False Private bResetFormatSubdialog As Boolean = False Public strDefaultDataFrame As String = "" @@ -134,17 +133,13 @@ Public Class dlgOneVariableSummarise clsPipeOperator = New ROperator - clsGtTableROperator = New ROperator - clsGetGtTableFunction = New RFunction + clsSummaryOperator = New ROperator ucrSelectorOneVarSummarise.Reset() clsPipeOperator.SetOperation("%>%") clsPipeOperator.bBrackets = False - clsGetGtTableFunction.SetPackageName("gt") - clsGetGtTableFunction.SetRCommand("gt") - clsSkimrFunction.SetPackageName("skimr") clsSkimrFunction.SetRCommand("skim_without_charts") clsSkimrFunction.AddParameter("data", clsRFunctionParameter:=ucrSelectorOneVarSummarise.ucrAvailableDataFrames.clsCurrDataFrame, iPosition:=0) @@ -167,13 +162,14 @@ Public Class dlgOneVariableSummarise clsGtFunction.SetPackageName("gt") clsGtFunction.SetRCommand("gt") - clsGtTableROperator.SetOperation("%>%") - clsGtTableROperator.bBrackets = False - clsGtTableROperator.AddParameter("tableFun", clsRFunctionParameter:=clsSummaryTableFunction, iPosition:=0) - clsGtTableROperator.AddParameter(strParameterName:="gt_tbl", clsRFunctionParameter:=clsGtFunction, iPosition:=1, bIncludeArgumentName:=False) + + clsSummaryOperator.SetOperation("%>%") + clsSummaryOperator.AddParameter("tableFun", clsRFunctionParameter:=clsSummaryTableFunction, iPosition:=0) + clsSummaryOperator.AddParameter(strParameterName:="gt_tbl", clsRFunctionParameter:=clsGtFunction, iPosition:=2, bIncludeArgumentName:=False) + clsJoiningPipeOperator.SetOperation("%>%") - clsJoiningPipeOperator.AddParameter("mutable", clsROperatorParameter:=clsGtTableROperator, iPosition:=0) + clsJoiningPipeOperator.AddParameter("mutable", clsROperatorParameter:=clsSummaryOperator, iPosition:=0) clsJoiningPipeOperator.SetAssignToOutputObject(strRObjectToAssignTo:="last_table", strRObjectTypeLabelToAssignTo:=RObjectTypeLabel.Table, strRObjectFormatToAssignTo:=RObjectFormat.Html, @@ -196,7 +192,6 @@ Public Class dlgOneVariableSummarise strObjectName:="last_summary") clsSummaryTableFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$summary_table") - clsSummaryTableFunction.AddParameter("data", clsRFunctionParameter:=ucrSelectorOneVarSummarise.ucrAvailableDataFrames.clsCurrDataFrame, iPosition:=0) clsSummaryTableFunction.AddParameter("treat_columns_as_factor", "TRUE", iPosition:=1) clsSummaryTableFunction.AddParameter("margins", Chr(34) & "summary" & Chr(34), iPosition:=2) clsSummaryTableFunction.AddParameter("summaries", clsRFunctionParameter:=clsSummariesList, iPosition:=5) @@ -211,15 +206,13 @@ Public Class dlgOneVariableSummarise ucrChkOmitMissing.AddAdditionalCodeParameterPair(clsSummaryTableFunction, New RParameter("na.rm", iNewPosition:=2), iAdditionalPairNo:=1) ucrSaveSummary.AddAdditionalRCode(clsSummaryFunction, iAdditionalPairNo:=1) ucrSaveSummary.AddAdditionalRCode(clsJoiningPipeOperator, iAdditionalPairNo:=2) - ucrReceiverOneVarSummarise.SetRCode(clsSummaryFunction, bReset) + ucrReceiverOneVarSummarise.AddAdditionalCodeParameterPair(clsSummaryFunction, New RParameter("object", iNewPosition:=2), iAdditionalPairNo:=1) ucrChkOmitMissing.SetRCode(clsSummaryFunction, bReset) ucrPnlSummaries.SetRCode(clsDummyFunction, bReset) ucrSelectorOneVarSummarise.SetRCode(clsSummaryTableFunction, bReset) ucrInputDisplayMissing.SetRCode(clsSummaryTableFunction, bReset) ucrSaveSummary.SetRCode(clsSkimrFunction, bReset) - ucrSelectorOneVarSummarise.SetRCode(clsGetGtTableFunction, bReset) - ucrReceiverOneVarSummarise.SetRCode(clsGetGtTableFunction, bReset) If bReset Then ucrChkDisplayMissing.SetRCode(clsDummyFunction, bReset) @@ -335,6 +328,7 @@ Public Class dlgOneVariableSummarise End If cmdSummaries.Visible = rdoCustomised.Checked cmdTableOptions.Visible = rdoCustomised.Checked + ConfigureColumnFactorsAndNames() End Sub Private Sub FillListView() @@ -368,28 +362,36 @@ Public Class dlgOneVariableSummarise End Sub Private Sub cmdTableOptions_Click(sender As Object, e As EventArgs) Handles cmdTableOptions.Click - sdgTableOptions.Setup(ucrSelectorOneVarSummarise.strCurrentDataFrame, clsGtTableROperator) + sdgTableOptions.Setup(ucrSelectorOneVarSummarise.strCurrentDataFrame, clsSummaryOperator) sdgTableOptions.ShowDialog(Me) bResetFormatSubdialog = False End Sub Private Sub Display_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlColumnFactor.ControlValueChanged - 'If bRCodeSet Then - If rdoNoColumnFactor.Checked Then - clsGtTableROperator.RemoveParameterByName("col_factor") - clsDummyFunction.AddParameter("factor_cols", "NoColFactor", iPosition:=1) - Else - clsGtTableROperator.AddParameter("col_factor", clsRFunctionParameter:=clsPivotWiderFunction, iPosition:=1) - If rdoSummary.Checked Then - clsDummyFunction.AddParameter("factor_cols", "Sum", iPosition:=1) - clsPivotWiderFunction.AddParameter("names_from", "summary", iPosition:=0) - ElseIf rdoVariable.Checked Then - clsDummyFunction.AddParameter("factor_cols", "Var", iPosition:=1) - clsPivotWiderFunction.AddParameter("names_from", "variable", iPosition:=0) + ConfigureColumnFactorsAndNames() + End Sub + + Private Sub ConfigureColumnFactorsAndNames() + If rdoCustomised.Checked Then + If rdoNoColumnFactor.Checked Then + clsSummaryOperator.RemoveParameterByName("col_factor") + clsDummyFunction.AddParameter("factor_cols", "NoColFactor", iPosition:=1) + Else + clsSummaryOperator.AddParameter("col_factor", clsRFunctionParameter:=clsPivotWiderFunction, iPosition:=1) + If rdoSummary.Checked Then + clsDummyFunction.AddParameter("factor_cols", "Sum", iPosition:=1) + clsPivotWiderFunction.AddParameter("names_from", "summary", iPosition:=0) + ElseIf rdoVariable.Checked Then + clsDummyFunction.AddParameter("factor_cols", "Var", iPosition:=1) + clsPivotWiderFunction.AddParameter("names_from", "variable", iPosition:=0) + End If End If + Else + clsSummaryOperator.RemoveParameterByName("col_factor") + clsPivotWiderFunction.RemoveParameterByName("names_from") End If - 'End If End Sub + Private Sub Controls_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrReceiverOneVarSummarise.ControlContentsChanged, ucrNudMaxSum.ControlContentsChanged, ucrSaveSummary.ControlContentsChanged TestOKEnabled() End Sub diff --git a/instat/dlgOneWayFrequencies.vb b/instat/dlgOneWayFrequencies.vb index a4a08b5d66c..bfbff835df5 100644 --- a/instat/dlgOneWayFrequencies.vb +++ b/instat/dlgOneWayFrequencies.vb @@ -284,6 +284,7 @@ Public Class dlgOneWayFrequencies ucrReceiverTableGraph.SetMeAsReceiver() ucrChkTableGraphWeights.Checked = clsTableSjMiscFrqRFunction.ContainsParameter("weight.by") OrElse clsGraphSjGGFreqPlotRFunction.ContainsParameter("weight.by") ucrChkTableGraphGroupData.Checked = clsTableSjMiscFrqRFunction.ContainsParameter("auto.group") OrElse clsGraphSjGGFreqPlotRFunction.ContainsParameter("auto.grp") + ucrReceiverStemAndLeaf.Clear() If rdoFrqTable.Checked Then 'the ideal way to determine the checked radio button would be to use AddFunctionNamesCondition() @@ -299,6 +300,7 @@ Public Class dlgOneWayFrequencies End If ElseIf rdoFrqStemLeaf.Checked Then + ucrReceiverTableGraph.Clear() ucrReceiverStemAndLeaf.SetMeAsReceiver() ucrChkStemLeafWidth.Checked = clsStemLeafRFunction.ContainsParameter("width") ucrChkStemLeafScale.Checked = clsStemLeafRFunction.ContainsParameter("scale") diff --git a/instat/dlgPICSACrops.Designer.vb b/instat/dlgPICSACrops.Designer.vb index e787f1db1b8..d7db6283afc 100644 --- a/instat/dlgPICSACrops.Designer.vb +++ b/instat/dlgPICSACrops.Designer.vb @@ -49,6 +49,7 @@ Partial Class dlgPICSACrops Me.ucrReceiverStart = New instat.ucrReceiverSingle() Me.ucrReceiverEnd = New instat.ucrReceiverSingle() Me.grpCropDefinitions = New System.Windows.Forms.GroupBox() + Me.lblStarts = New System.Windows.Forms.Label() Me.ucrInputCropLengths = New instat.ucrInputComboBox() Me.ucrInputWaterAmounts = New instat.ucrInputComboBox() Me.ucrInputPlantingDates = New instat.ucrInputComboBox() @@ -60,14 +61,13 @@ Partial Class dlgPICSACrops Me.lblWaterAmounts = New System.Windows.Forms.Label() Me.ucrPnlStartCheck = New instat.UcrPanel() Me.ucrChkDataProp = New instat.ucrCheck() - Me.ucrChkPrintDataProp = New instat.ucrCheck() + Me.ucrChkDataCrops = New instat.ucrCheck() Me.ucrReceiverRainfall = New instat.ucrReceiverSingle() Me.ucrReceiverDay = New instat.ucrReceiverSingle() Me.ucrReceiverYear = New instat.ucrReceiverSingle() Me.ucrReceiverStation = New instat.ucrReceiverSingle() Me.ucrSelectorForCrops = New instat.ucrSelectorByDataFrameAddRemove() Me.ucrBase = New instat.ucrButtons() - Me.lblStarts = New System.Windows.Forms.Label() Me.grpSeasonReceivers.SuspendLayout() Me.grpCropDefinitions.SuspendLayout() Me.SuspendLayout() @@ -75,9 +75,10 @@ Partial Class dlgPICSACrops 'lblSelectedSet ' Me.lblSelectedSet.AutoSize = True - Me.lblSelectedSet.Location = New System.Drawing.Point(232, 21) + Me.lblSelectedSet.Location = New System.Drawing.Point(348, 32) + Me.lblSelectedSet.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblSelectedSet.Name = "lblSelectedSet" - Me.lblSelectedSet.Size = New System.Drawing.Size(43, 13) + Me.lblSelectedSet.Size = New System.Drawing.Size(64, 20) Me.lblSelectedSet.TabIndex = 15 Me.lblSelectedSet.Tag = "" Me.lblSelectedSet.Text = "Station:" @@ -85,9 +86,10 @@ Partial Class dlgPICSACrops 'Label2 ' Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(365, 21) + Me.Label2.Location = New System.Drawing.Point(548, 32) + Me.Label2.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(32, 13) + Me.Label2.Size = New System.Drawing.Size(47, 20) Me.Label2.TabIndex = 21 Me.Label2.Tag = "" Me.Label2.Text = "Year:" @@ -95,9 +97,10 @@ Partial Class dlgPICSACrops 'Label3 ' Me.Label3.AutoSize = True - Me.Label3.Location = New System.Drawing.Point(365, 66) + Me.Label3.Location = New System.Drawing.Point(548, 99) + Me.Label3.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(65, 13) + Me.Label3.Size = New System.Drawing.Size(95, 20) Me.Label3.TabIndex = 22 Me.Label3.Tag = "" Me.Label3.Text = "Day in Year:" @@ -105,9 +108,10 @@ Partial Class dlgPICSACrops 'lblRain ' Me.lblRain.AutoSize = True - Me.lblRain.Location = New System.Drawing.Point(232, 66) + Me.lblRain.Location = New System.Drawing.Point(348, 99) + Me.lblRain.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblRain.Name = "lblRain" - Me.lblRain.Size = New System.Drawing.Size(32, 13) + Me.lblRain.Size = New System.Drawing.Size(46, 20) Me.lblRain.TabIndex = 23 Me.lblRain.Tag = "" Me.lblRain.Text = "Rain:" @@ -115,9 +119,10 @@ Partial Class dlgPICSACrops 'Label5 ' Me.Label5.AutoSize = True - Me.Label5.Location = New System.Drawing.Point(6, 17) + Me.Label5.Location = New System.Drawing.Point(9, 26) + Me.Label5.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(32, 13) + Me.Label5.Size = New System.Drawing.Size(48, 20) Me.Label5.TabIndex = 24 Me.Label5.Tag = "" Me.Label5.Text = "Start:" @@ -125,9 +130,10 @@ Partial Class dlgPICSACrops 'Label6 ' Me.Label6.AutoSize = True - Me.Label6.Location = New System.Drawing.Point(139, 19) + Me.Label6.Location = New System.Drawing.Point(208, 28) + Me.Label6.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(32, 13) + Me.Label6.Size = New System.Drawing.Size(46, 20) Me.Label6.TabIndex = 25 Me.Label6.Tag = "" Me.Label6.Text = "End :" @@ -135,9 +141,10 @@ Partial Class dlgPICSACrops 'cmdOptions ' Me.cmdOptions.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.cmdOptions.Location = New System.Drawing.Point(368, 358) + Me.cmdOptions.Location = New System.Drawing.Point(552, 537) + Me.cmdOptions.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.cmdOptions.Name = "cmdOptions" - Me.cmdOptions.Size = New System.Drawing.Size(120, 25) + Me.cmdOptions.Size = New System.Drawing.Size(180, 38) Me.cmdOptions.TabIndex = 31 Me.cmdOptions.Tag = "Options" Me.cmdOptions.Text = "Options" @@ -149,9 +156,11 @@ Partial Class dlgPICSACrops Me.grpSeasonReceivers.Controls.Add(Me.ucrReceiverStart) Me.grpSeasonReceivers.Controls.Add(Me.Label6) Me.grpSeasonReceivers.Controls.Add(Me.ucrReceiverEnd) - Me.grpSeasonReceivers.Location = New System.Drawing.Point(226, 111) + Me.grpSeasonReceivers.Location = New System.Drawing.Point(339, 166) + Me.grpSeasonReceivers.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.grpSeasonReceivers.Name = "grpSeasonReceivers" - Me.grpSeasonReceivers.Size = New System.Drawing.Size(272, 66) + Me.grpSeasonReceivers.Padding = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.grpSeasonReceivers.Size = New System.Drawing.Size(408, 99) Me.grpSeasonReceivers.TabIndex = 38 Me.grpSeasonReceivers.TabStop = False Me.grpSeasonReceivers.Text = "Season Dates" @@ -160,11 +169,11 @@ Partial Class dlgPICSACrops ' Me.ucrReceiverStart.AutoSize = True Me.ucrReceiverStart.frmParent = Me - Me.ucrReceiverStart.Location = New System.Drawing.Point(10, 34) + Me.ucrReceiverStart.Location = New System.Drawing.Point(15, 51) Me.ucrReceiverStart.Margin = New System.Windows.Forms.Padding(0) Me.ucrReceiverStart.Name = "ucrReceiverStart" Me.ucrReceiverStart.Selector = Nothing - Me.ucrReceiverStart.Size = New System.Drawing.Size(120, 20) + Me.ucrReceiverStart.Size = New System.Drawing.Size(180, 30) Me.ucrReceiverStart.strNcFilePath = "" Me.ucrReceiverStart.TabIndex = 19 Me.ucrReceiverStart.ucrSelector = Nothing @@ -173,11 +182,11 @@ Partial Class dlgPICSACrops ' Me.ucrReceiverEnd.AutoSize = True Me.ucrReceiverEnd.frmParent = Me - Me.ucrReceiverEnd.Location = New System.Drawing.Point(142, 34) + Me.ucrReceiverEnd.Location = New System.Drawing.Point(213, 51) Me.ucrReceiverEnd.Margin = New System.Windows.Forms.Padding(0) Me.ucrReceiverEnd.Name = "ucrReceiverEnd" Me.ucrReceiverEnd.Selector = Nothing - Me.ucrReceiverEnd.Size = New System.Drawing.Size(120, 22) + Me.ucrReceiverEnd.Size = New System.Drawing.Size(180, 33) Me.ucrReceiverEnd.strNcFilePath = "" Me.ucrReceiverEnd.TabIndex = 26 Me.ucrReceiverEnd.ucrSelector = Nothing @@ -195,23 +204,35 @@ Partial Class dlgPICSACrops Me.grpCropDefinitions.Controls.Add(Me.lblCropLengthDays) Me.grpCropDefinitions.Controls.Add(Me.lblWaterAmounts) Me.grpCropDefinitions.Controls.Add(Me.ucrPnlStartCheck) - Me.grpCropDefinitions.Location = New System.Drawing.Point(6, 194) + Me.grpCropDefinitions.Location = New System.Drawing.Point(9, 291) + Me.grpCropDefinitions.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.grpCropDefinitions.Name = "grpCropDefinitions" - Me.grpCropDefinitions.Size = New System.Drawing.Size(292, 158) + Me.grpCropDefinitions.Padding = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.grpCropDefinitions.Size = New System.Drawing.Size(438, 237) Me.grpCropDefinitions.TabIndex = 39 Me.grpCropDefinitions.TabStop = False Me.grpCropDefinitions.Text = "Crop Definitions" ' + 'lblStarts + ' + Me.lblStarts.AutoSize = True + Me.lblStarts.Location = New System.Drawing.Point(9, 40) + Me.lblStarts.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblStarts.Name = "lblStarts" + Me.lblStarts.Size = New System.Drawing.Size(104, 20) + Me.lblStarts.TabIndex = 56 + Me.lblStarts.Text = "Include Start:" + ' 'ucrInputCropLengths ' Me.ucrInputCropLengths.AddQuotesIfUnrecognised = True Me.ucrInputCropLengths.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink Me.ucrInputCropLengths.GetSetSelectedIndex = -1 Me.ucrInputCropLengths.IsReadOnly = False - Me.ucrInputCropLengths.Location = New System.Drawing.Point(106, 129) - Me.ucrInputCropLengths.Margin = New System.Windows.Forms.Padding(6) + Me.ucrInputCropLengths.Location = New System.Drawing.Point(159, 194) + Me.ucrInputCropLengths.Margin = New System.Windows.Forms.Padding(9, 9, 9, 9) Me.ucrInputCropLengths.Name = "ucrInputCropLengths" - Me.ucrInputCropLengths.Size = New System.Drawing.Size(170, 21) + Me.ucrInputCropLengths.Size = New System.Drawing.Size(255, 32) Me.ucrInputCropLengths.TabIndex = 55 ' 'ucrInputWaterAmounts @@ -220,10 +241,10 @@ Partial Class dlgPICSACrops Me.ucrInputWaterAmounts.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink Me.ucrInputWaterAmounts.GetSetSelectedIndex = -1 Me.ucrInputWaterAmounts.IsReadOnly = False - Me.ucrInputWaterAmounts.Location = New System.Drawing.Point(107, 92) - Me.ucrInputWaterAmounts.Margin = New System.Windows.Forms.Padding(9) + Me.ucrInputWaterAmounts.Location = New System.Drawing.Point(160, 138) + Me.ucrInputWaterAmounts.Margin = New System.Windows.Forms.Padding(14, 14, 14, 14) Me.ucrInputWaterAmounts.Name = "ucrInputWaterAmounts" - Me.ucrInputWaterAmounts.Size = New System.Drawing.Size(169, 21) + Me.ucrInputWaterAmounts.Size = New System.Drawing.Size(254, 32) Me.ucrInputWaterAmounts.TabIndex = 40 ' 'ucrInputPlantingDates @@ -232,19 +253,18 @@ Partial Class dlgPICSACrops Me.ucrInputPlantingDates.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink Me.ucrInputPlantingDates.GetSetSelectedIndex = -1 Me.ucrInputPlantingDates.IsReadOnly = False - Me.ucrInputPlantingDates.Location = New System.Drawing.Point(107, 58) - Me.ucrInputPlantingDates.Margin = New System.Windows.Forms.Padding(9) + Me.ucrInputPlantingDates.Location = New System.Drawing.Point(160, 87) + Me.ucrInputPlantingDates.Margin = New System.Windows.Forms.Padding(14, 14, 14, 14) Me.ucrInputPlantingDates.Name = "ucrInputPlantingDates" - Me.ucrInputPlantingDates.Size = New System.Drawing.Size(169, 21) + Me.ucrInputPlantingDates.Size = New System.Drawing.Size(254, 32) Me.ucrInputPlantingDates.TabIndex = 53 ' 'rdoBoth ' Me.rdoBoth.AutoSize = True - Me.rdoBoth.Location = New System.Drawing.Point(225, 25) - Me.rdoBoth.Margin = New System.Windows.Forms.Padding(2) + Me.rdoBoth.Location = New System.Drawing.Point(338, 38) Me.rdoBoth.Name = "rdoBoth" - Me.rdoBoth.Size = New System.Drawing.Size(47, 17) + Me.rdoBoth.Size = New System.Drawing.Size(68, 24) Me.rdoBoth.TabIndex = 44 Me.rdoBoth.TabStop = True Me.rdoBoth.Text = "Both" @@ -253,10 +273,9 @@ Partial Class dlgPICSACrops 'rdoNo ' Me.rdoNo.AutoSize = True - Me.rdoNo.Location = New System.Drawing.Point(153, 25) - Me.rdoNo.Margin = New System.Windows.Forms.Padding(2) + Me.rdoNo.Location = New System.Drawing.Point(230, 38) Me.rdoNo.Name = "rdoNo" - Me.rdoNo.Size = New System.Drawing.Size(39, 17) + Me.rdoNo.Size = New System.Drawing.Size(54, 24) Me.rdoNo.TabIndex = 45 Me.rdoNo.TabStop = True Me.rdoNo.Text = "No" @@ -265,10 +284,9 @@ Partial Class dlgPICSACrops 'rdoYes ' Me.rdoYes.AutoSize = True - Me.rdoYes.Location = New System.Drawing.Point(81, 25) - Me.rdoYes.Margin = New System.Windows.Forms.Padding(2) + Me.rdoYes.Location = New System.Drawing.Point(122, 38) Me.rdoYes.Name = "rdoYes" - Me.rdoYes.Size = New System.Drawing.Size(43, 17) + Me.rdoYes.Size = New System.Drawing.Size(62, 24) Me.rdoYes.TabIndex = 43 Me.rdoYes.TabStop = True Me.rdoYes.Text = "Yes" @@ -277,68 +295,71 @@ Partial Class dlgPICSACrops 'lblPlantingDays ' Me.lblPlantingDays.AutoSize = True - Me.lblPlantingDays.Location = New System.Drawing.Point(3, 60) + Me.lblPlantingDays.Location = New System.Drawing.Point(4, 90) + Me.lblPlantingDays.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblPlantingDays.Name = "lblPlantingDays" - Me.lblPlantingDays.Size = New System.Drawing.Size(81, 13) + Me.lblPlantingDays.Size = New System.Drawing.Size(120, 20) Me.lblPlantingDays.TabIndex = 42 Me.lblPlantingDays.Text = "Planting Day(s):" ' 'lblCropLengthDays ' Me.lblCropLengthDays.AutoSize = True - Me.lblCropLengthDays.Location = New System.Drawing.Point(5, 133) + Me.lblCropLengthDays.Location = New System.Drawing.Point(8, 200) + Me.lblCropLengthDays.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblCropLengthDays.Name = "lblCropLengthDays" - Me.lblCropLengthDays.Size = New System.Drawing.Size(101, 13) + Me.lblCropLengthDays.Size = New System.Drawing.Size(151, 20) Me.lblCropLengthDays.TabIndex = 41 Me.lblCropLengthDays.Text = "Crop Length Day(s):" ' 'lblWaterAmounts ' Me.lblWaterAmounts.AutoSize = True - Me.lblWaterAmounts.Location = New System.Drawing.Point(5, 95) + Me.lblWaterAmounts.Location = New System.Drawing.Point(8, 142) + Me.lblWaterAmounts.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblWaterAmounts.Name = "lblWaterAmounts" - Me.lblWaterAmounts.Size = New System.Drawing.Size(89, 13) + Me.lblWaterAmounts.Size = New System.Drawing.Size(134, 20) Me.lblWaterAmounts.TabIndex = 40 Me.lblWaterAmounts.Text = "Water Amount(s):" ' 'ucrPnlStartCheck ' Me.ucrPnlStartCheck.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrPnlStartCheck.Location = New System.Drawing.Point(75, 14) - Me.ucrPnlStartCheck.Margin = New System.Windows.Forms.Padding(6) + Me.ucrPnlStartCheck.Location = New System.Drawing.Point(112, 21) + Me.ucrPnlStartCheck.Margin = New System.Windows.Forms.Padding(9, 9, 9, 9) Me.ucrPnlStartCheck.Name = "ucrPnlStartCheck" - Me.ucrPnlStartCheck.Size = New System.Drawing.Size(201, 37) + Me.ucrPnlStartCheck.Size = New System.Drawing.Size(302, 56) Me.ucrPnlStartCheck.TabIndex = 46 ' 'ucrChkDataProp ' Me.ucrChkDataProp.AutoSize = True Me.ucrChkDataProp.Checked = False - Me.ucrChkDataProp.Location = New System.Drawing.Point(10, 358) - Me.ucrChkDataProp.Margin = New System.Windows.Forms.Padding(6) + Me.ucrChkDataProp.Location = New System.Drawing.Point(281, 539) + Me.ucrChkDataProp.Margin = New System.Windows.Forms.Padding(9, 9, 9, 9) Me.ucrChkDataProp.Name = "ucrChkDataProp" - Me.ucrChkDataProp.Size = New System.Drawing.Size(172, 23) + Me.ucrChkDataProp.Size = New System.Drawing.Size(258, 34) Me.ucrChkDataProp.TabIndex = 37 ' - 'ucrChkPrintDataProp + 'ucrChkDataCrops ' - Me.ucrChkPrintDataProp.AutoSize = True - Me.ucrChkPrintDataProp.Checked = False - Me.ucrChkPrintDataProp.Location = New System.Drawing.Point(188, 358) - Me.ucrChkPrintDataProp.Margin = New System.Windows.Forms.Padding(6) - Me.ucrChkPrintDataProp.Name = "ucrChkPrintDataProp" - Me.ucrChkPrintDataProp.Size = New System.Drawing.Size(255, 23) - Me.ucrChkPrintDataProp.TabIndex = 36 + Me.ucrChkDataCrops.AutoSize = True + Me.ucrChkDataCrops.Checked = False + Me.ucrChkDataCrops.Location = New System.Drawing.Point(9, 539) + Me.ucrChkDataCrops.Margin = New System.Windows.Forms.Padding(9, 9, 9, 9) + Me.ucrChkDataCrops.Name = "ucrChkDataCrops" + Me.ucrChkDataCrops.Size = New System.Drawing.Size(382, 34) + Me.ucrChkDataCrops.TabIndex = 36 ' 'ucrReceiverRainfall ' Me.ucrReceiverRainfall.AutoSize = True Me.ucrReceiverRainfall.frmParent = Me - Me.ucrReceiverRainfall.Location = New System.Drawing.Point(236, 81) + Me.ucrReceiverRainfall.Location = New System.Drawing.Point(354, 122) Me.ucrReceiverRainfall.Margin = New System.Windows.Forms.Padding(0) Me.ucrReceiverRainfall.Name = "ucrReceiverRainfall" Me.ucrReceiverRainfall.Selector = Nothing - Me.ucrReceiverRainfall.Size = New System.Drawing.Size(120, 20) + Me.ucrReceiverRainfall.Size = New System.Drawing.Size(180, 30) Me.ucrReceiverRainfall.strNcFilePath = "" Me.ucrReceiverRainfall.TabIndex = 17 Me.ucrReceiverRainfall.ucrSelector = Nothing @@ -347,11 +368,11 @@ Partial Class dlgPICSACrops ' Me.ucrReceiverDay.AutoSize = True Me.ucrReceiverDay.frmParent = Me - Me.ucrReceiverDay.Location = New System.Drawing.Point(368, 81) + Me.ucrReceiverDay.Location = New System.Drawing.Point(552, 122) Me.ucrReceiverDay.Margin = New System.Windows.Forms.Padding(0) Me.ucrReceiverDay.Name = "ucrReceiverDay" Me.ucrReceiverDay.Selector = Nothing - Me.ucrReceiverDay.Size = New System.Drawing.Size(120, 20) + Me.ucrReceiverDay.Size = New System.Drawing.Size(180, 30) Me.ucrReceiverDay.strNcFilePath = "" Me.ucrReceiverDay.TabIndex = 16 Me.ucrReceiverDay.ucrSelector = Nothing @@ -360,11 +381,11 @@ Partial Class dlgPICSACrops ' Me.ucrReceiverYear.AutoSize = True Me.ucrReceiverYear.frmParent = Me - Me.ucrReceiverYear.Location = New System.Drawing.Point(368, 37) + Me.ucrReceiverYear.Location = New System.Drawing.Point(552, 56) Me.ucrReceiverYear.Margin = New System.Windows.Forms.Padding(0) Me.ucrReceiverYear.Name = "ucrReceiverYear" Me.ucrReceiverYear.Selector = Nothing - Me.ucrReceiverYear.Size = New System.Drawing.Size(120, 20) + Me.ucrReceiverYear.Size = New System.Drawing.Size(180, 30) Me.ucrReceiverYear.strNcFilePath = "" Me.ucrReceiverYear.TabIndex = 3 Me.ucrReceiverYear.ucrSelector = Nothing @@ -373,11 +394,11 @@ Partial Class dlgPICSACrops ' Me.ucrReceiverStation.AutoSize = True Me.ucrReceiverStation.frmParent = Me - Me.ucrReceiverStation.Location = New System.Drawing.Point(236, 37) + Me.ucrReceiverStation.Location = New System.Drawing.Point(354, 56) Me.ucrReceiverStation.Margin = New System.Windows.Forms.Padding(0) Me.ucrReceiverStation.Name = "ucrReceiverStation" Me.ucrReceiverStation.Selector = Nothing - Me.ucrReceiverStation.Size = New System.Drawing.Size(120, 20) + Me.ucrReceiverStation.Size = New System.Drawing.Size(180, 30) Me.ucrReceiverStation.strNcFilePath = "" Me.ucrReceiverStation.TabIndex = 2 Me.ucrReceiverStation.ucrSelector = Nothing @@ -388,41 +409,32 @@ Partial Class dlgPICSACrops Me.ucrSelectorForCrops.bDropUnusedFilterLevels = False Me.ucrSelectorForCrops.bShowHiddenColumns = False Me.ucrSelectorForCrops.bUseCurrentFilter = True - Me.ucrSelectorForCrops.Location = New System.Drawing.Point(6, 5) + Me.ucrSelectorForCrops.Location = New System.Drawing.Point(9, 8) Me.ucrSelectorForCrops.Margin = New System.Windows.Forms.Padding(0) Me.ucrSelectorForCrops.Name = "ucrSelectorForCrops" - Me.ucrSelectorForCrops.Size = New System.Drawing.Size(213, 183) + Me.ucrSelectorForCrops.Size = New System.Drawing.Size(320, 274) Me.ucrSelectorForCrops.TabIndex = 1 ' 'ucrBase ' Me.ucrBase.AutoSize = True Me.ucrBase.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrBase.Location = New System.Drawing.Point(10, 392) - Me.ucrBase.Margin = New System.Windows.Forms.Padding(4) + Me.ucrBase.Location = New System.Drawing.Point(15, 588) + Me.ucrBase.Margin = New System.Windows.Forms.Padding(6, 6, 6, 6) Me.ucrBase.Name = "ucrBase" - Me.ucrBase.Size = New System.Drawing.Size(408, 52) + Me.ucrBase.Size = New System.Drawing.Size(611, 77) Me.ucrBase.TabIndex = 0 ' - 'lblStarts - ' - Me.lblStarts.AutoSize = True - Me.lblStarts.Location = New System.Drawing.Point(6, 27) - Me.lblStarts.Name = "lblStarts" - Me.lblStarts.Size = New System.Drawing.Size(70, 13) - Me.lblStarts.TabIndex = 56 - Me.lblStarts.Text = "Include Start:" - ' 'dlgPICSACrops ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleDimensions = New System.Drawing.SizeF(144.0!, 144.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi Me.AutoSize = True - Me.ClientSize = New System.Drawing.Size(504, 449) + Me.ClientSize = New System.Drawing.Size(756, 674) Me.Controls.Add(Me.grpCropDefinitions) Me.Controls.Add(Me.grpSeasonReceivers) Me.Controls.Add(Me.ucrChkDataProp) - Me.Controls.Add(Me.ucrChkPrintDataProp) + Me.Controls.Add(Me.ucrChkDataCrops) Me.Controls.Add(Me.cmdOptions) Me.Controls.Add(Me.lblRain) Me.Controls.Add(Me.Label3) @@ -435,6 +447,7 @@ Partial Class dlgPICSACrops Me.Controls.Add(Me.ucrSelectorForCrops) Me.Controls.Add(Me.ucrBase) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow + Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.MaximizeBox = False Me.MinimizeBox = False Me.Name = "dlgPICSACrops" @@ -464,7 +477,7 @@ Partial Class dlgPICSACrops Friend WithEvents Label5 As Label Friend WithEvents lblRain As Label Friend WithEvents cmdOptions As Button - Friend WithEvents ucrChkPrintDataProp As ucrCheck + Friend WithEvents ucrChkDataCrops As ucrCheck Friend WithEvents ucrChkDataProp As ucrCheck Friend WithEvents grpSeasonReceivers As GroupBox Friend WithEvents grpCropDefinitions As GroupBox diff --git a/instat/dlgPICSACrops.vb b/instat/dlgPICSACrops.vb index a340b3716cc..5ef3b22f511 100644 --- a/instat/dlgPICSACrops.vb +++ b/instat/dlgPICSACrops.vb @@ -169,16 +169,16 @@ Public Class dlgPICSACrops 'ucrNudWaterSeqStep.SetParameter(New RParameter("step", clsSeqRainfall)) 'ucrNudWaterSeqTo.SetParameter(New RParameter("to", clsSeqRainfall)) + ucrChkDataCrops.SetText("Return Crops Data") + ucrChkDataCrops.SetParameter(New RParameter("return_crops_table", 11), bNewChangeParameterValue:=True, strNewValueIfChecked:="TRUE", strNewValueIfUnchecked:="FALSE") + ucrChkDataCrops.SetRDefault("TRUE") + ucrChkDataProp.SetText("Calculate Proportions") - ucrChkDataProp.SetParameter(New RParameter("definition_props", 8), bNewChangeParameterValue:=True, strNewValueIfChecked:="TRUE", strNewValueIfUnchecked:="FALSE") + ucrChkDataProp.SetParameter(New RParameter("definition_props", 12), bNewChangeParameterValue:=True, strNewValueIfChecked:="TRUE", strNewValueIfUnchecked:="FALSE") ucrChkDataProp.SetRDefault("TRUE") - ucrChkPrintDataProp.SetText("Print Proportions Table(s)") - ucrChkPrintDataProp.SetParameter(New RParameter("print_table", 9), bNewChangeParameterValue:=True, strNewValueIfChecked:="TRUE", strNewValueIfUnchecked:="FALSE") - ucrChkPrintDataProp.SetRDefault("TRUE") - 'Linking of controls - ucrChkDataProp.AddToLinkedControls(ucrChkPrintDataProp, {True}, bNewLinkedAddRemoveParameter:=True, bNewLinkedDisabledIfParameterMissing:=True) + ucrChkDataProp.AddToLinkedControls(ucrChkDataCrops, {True}, bNewLinkedAddRemoveParameter:=True, bNewLinkedDisabledIfParameterMissing:=True) End Sub Private Sub SetDefaults() @@ -206,8 +206,8 @@ Public Class dlgPICSACrops ucrInputPlantingDates.SetName("160") ucrInputCropLengths.SetName("120") ucrInputWaterAmounts.SetName("600") - clsCropsFunction.AddParameter("definition_props", "TRUE", iPosition:=11) - clsCropsFunction.AddParameter("print_table", "TRUE", iPosition:=12) + clsCropsFunction.AddParameter("return_crops_table", "TRUE", iPosition:=11) + clsCropsFunction.AddParameter("definition_props", "TRUE", iPosition:=12) ucrBase.clsRsyntax.SetBaseRFunction(clsCropsFunction) ucrBase.clsRsyntax.iCallType = 2 TestOkEnabled() @@ -232,7 +232,7 @@ Public Class dlgPICSACrops ' Disabled as list validation not working correctly with reading/writing controls ucrChkDataProp.SetRCode(clsCropsFunction, bReset) - ucrChkPrintDataProp.SetRCode(clsCropsFunction, bReset) + ucrChkDataCrops.SetRCode(clsCropsFunction, bReset) If bReset Then ucrPnlStartCheck.SetRCode(clsDummyFunction, bReset) End If @@ -246,7 +246,7 @@ Public Class dlgPICSACrops End Sub Private Sub TestOkEnabled() - If Not ucrReceiverYear.IsEmpty AndAlso Not ucrReceiverRainfall.IsEmpty AndAlso Not ucrReceiverStart.IsEmpty AndAlso Not ucrReceiverDay.IsEmpty AndAlso Not ucrReceiverEnd.IsEmpty AndAlso Not ucrInputPlantingDates.IsEmpty AndAlso Not ucrInputCropLengths.IsEmpty AndAlso Not ucrInputWaterAmounts.IsEmpty Then + If Not ucrReceiverYear.IsEmpty AndAlso Not ucrReceiverRainfall.IsEmpty AndAlso Not ucrReceiverStart.IsEmpty AndAlso Not ucrReceiverDay.IsEmpty AndAlso Not ucrReceiverEnd.IsEmpty AndAlso Not ucrInputPlantingDates.IsEmpty AndAlso Not ucrInputCropLengths.IsEmpty AndAlso Not ucrInputWaterAmounts.IsEmpty AndAlso (ucrChkDataCrops.Checked OrElse ucrChkDataProp.Checked) Then ucrBase.OKEnabled(True) Else ucrBase.OKEnabled(False) diff --git a/instat/dlgRPackages.vb b/instat/dlgRPackages.vb index 488477f7658..31635f28e95 100644 --- a/instat/dlgRPackages.vb +++ b/instat/dlgRPackages.vb @@ -43,6 +43,7 @@ Public Class dlgInstallRPackage dctPackages.Add("rapidpror", Chr(34) & "rapidpror" & Chr(34)) dctPackages.Add("openappr", Chr(34) & "openappr" & Chr(34)) dctPackages.Add("networkGraphsR", Chr(34) & "networkGraphsR" & Chr(34)) + dctPackages.Add("climdex.pcic", Chr(34) & "climdex.pcic" & Chr(34)) ucrInputPackage.SetItems(dctPackages) ucrPnlRPackages.AddParameterValuesCondition(rdoCRAN, "checked", "cran") diff --git a/instat/dlgReplaceValues.vb b/instat/dlgReplaceValues.vb index 5afcef5523e..a7b076cf8ed 100644 --- a/instat/dlgReplaceValues.vb +++ b/instat/dlgReplaceValues.vb @@ -54,7 +54,7 @@ Public Class dlgReplaceValues ucrReceiverReplace.SetParameter(New RParameter("col_names", 1)) ucrReceiverReplace.Selector = ucrSelectorReplace ucrReceiverReplace.SetMeAsReceiver() - ucrReceiverReplace.SetSingleTypeStatus(True) + ucrReceiverReplace.SetSingleTypeStatus(True, bIsCategoricalNumeric:=True) ucrReceiverReplace.SetParameterIsString() 'Old Values diff --git a/instat/dlgScript.Designer.vb b/instat/dlgScript.Designer.vb index ba37efac17a..8df12cb676a 100644 --- a/instat/dlgScript.Designer.vb +++ b/instat/dlgScript.Designer.vb @@ -25,20 +25,43 @@ Partial Class dlgScript Me.tbFeatures = New System.Windows.Forms.TabControl() Me.tbPageSaveData = New System.Windows.Forms.TabPage() Me.rdoFromRFile = New System.Windows.Forms.RadioButton() + Me.ucrInputSaveRFile = New instat.ucrInputTextBox() + Me.lblSaveText = New System.Windows.Forms.Label() + Me.lblSaveDataFrame = New System.Windows.Forms.Label() + Me.lblSaveColumn = New System.Windows.Forms.Label() + Me.ucrInputDataframeColumn = New instat.ucrInputTextBox() + Me.ucrInputSaveColumn = New instat.ucrInputTextBox() + Me.rdoVariable = New System.Windows.Forms.RadioButton() Me.rdoDataFrame = New System.Windows.Forms.RadioButton() + Me.ucrChkDisplayGraph = New instat.ucrCheck() + Me.ucrChkSaveDataFrameSingle = New instat.ucrCheck() + Me.ucrInputSaveDataFrame = New instat.ucrInputTextBox() Me.lblSaveObjectFormat = New System.Windows.Forms.Label() + Me.ucrCboSaveOutputObjectFormat = New instat.ucrInputComboBox() Me.lblSaveObjectType = New System.Windows.Forms.Label() + Me.ucrCboSaveOutputObjectType = New instat.ucrInputComboBox() Me.rdoSaveOutputObject = New System.Windows.Forms.RadioButton() Me.rdoSaveDataFrame = New System.Windows.Forms.RadioButton() Me.rdoSaveColumn = New System.Windows.Forms.RadioButton() + Me.ucrSaveObject = New instat.ucrSave() + Me.ucrDataFrameSaveOutputSelect = New instat.ucrDataFrame() + Me.ucrPnlSaveData = New instat.UcrPanel() + Me.ucrPnlSaveDataFrame = New instat.UcrPanel() Me.tbPageGetData = New System.Windows.Forms.TabPage() + Me.ucrReceiverGetOutputObject = New instat.ucrReceiverSingle() + Me.ucrReceiverGetColumns = New instat.ucrReceiverMultiple() Me.lblGetColumn = New System.Windows.Forms.Label() Me.lblGetObjectType = New System.Windows.Forms.Label() Me.rdoGetOutputObject = New System.Windows.Forms.RadioButton() Me.lblGetOutputObject = New System.Windows.Forms.Label() Me.rdoGetDataFrame = New System.Windows.Forms.RadioButton() Me.rdoGetColumn = New System.Windows.Forms.RadioButton() + Me.ucrDataFrameGetDF = New instat.ucrDataFrame() + Me.ucrCboGetOutputObjectType = New instat.ucrInputComboBox() + Me.ucrPnlGetData = New instat.UcrPanel() + Me.ucrSelectorGetObject = New instat.ucrSelectorByDataFrameAddRemove() Me.tbPageCommand = New System.Windows.Forms.TabPage() + Me.ucrChkWindow = New instat.ucrCheck() Me.rdoWindow = New System.Windows.Forms.RadioButton() Me.rdoListData = New System.Windows.Forms.RadioButton() Me.rdoViewData = New System.Windows.Forms.RadioButton() @@ -48,33 +71,6 @@ Partial Class dlgScript Me.rdoGgplotify = New System.Windows.Forms.RadioButton() Me.rdoCommandPackage = New System.Windows.Forms.RadioButton() Me.rdoCommandObject = New System.Windows.Forms.RadioButton() - Me.tbPageExamples = New System.Windows.Forms.TabPage() - Me.cmdHelp = New System.Windows.Forms.Button() - Me.rdoExampleData = New System.Windows.Forms.RadioButton() - Me.rdoExampleFunction = New System.Windows.Forms.RadioButton() - Me.lstExampleCollection = New System.Windows.Forms.ListView() - Me.clmDatasets = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.clmDesc = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.Label3 = New System.Windows.Forms.Label() - Me.lblPreview = New System.Windows.Forms.Label() - Me.txtScript = New System.Windows.Forms.TextBox() - Me.ucrInputSaveRFile = New instat.ucrInputTextBox() - Me.ucrChkDisplayGraph = New instat.ucrCheck() - Me.ucrChkSaveDataFrameSingle = New instat.ucrCheck() - Me.ucrInputSaveDataFrame = New instat.ucrInputTextBox() - Me.ucrCboSaveOutputObjectFormat = New instat.ucrInputComboBox() - Me.ucrCboSaveOutputObjectType = New instat.ucrInputComboBox() - Me.ucrSaveObject = New instat.ucrSave() - Me.ucrDataFrameSaveOutputSelect = New instat.ucrDataFrame() - Me.ucrPnlSaveData = New instat.UcrPanel() - Me.ucrPnlSaveDataFrame = New instat.UcrPanel() - Me.ucrReceiverGetOutputObject = New instat.ucrReceiverSingle() - Me.ucrReceiverGetColumns = New instat.ucrReceiverMultiple() - Me.ucrDataFrameGetDF = New instat.ucrDataFrame() - Me.ucrCboGetOutputObjectType = New instat.ucrInputComboBox() - Me.ucrPnlGetData = New instat.UcrPanel() - Me.ucrSelectorGetObject = New instat.ucrSelectorByDataFrameAddRemove() - Me.ucrChkWindow = New instat.ucrCheck() Me.ucrChkInto = New instat.ucrCheck() Me.ucrInputSaveData = New instat.ucrInputTextBox() Me.ucrCboCommandDataPackage = New instat.ucrInputComboBox() @@ -86,14 +82,33 @@ Partial Class dlgScript Me.ucrInputRemoveObjects = New instat.ucrInputTextBox() Me.ucrCboCommandPackage = New instat.ucrInputComboBox() Me.ucrPnlCommands = New instat.UcrPanel() + Me.tbPageExamples = New System.Windows.Forms.TabPage() + Me.cmdHelp = New System.Windows.Forms.Button() + Me.rdoExampleData = New System.Windows.Forms.RadioButton() + Me.rdoExampleFunction = New System.Windows.Forms.RadioButton() Me.ucrPnlExample = New instat.UcrPanel() + Me.lstExampleCollection = New System.Windows.Forms.ListView() + Me.clmDatasets = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.clmDesc = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.Label3 = New System.Windows.Forms.Label() Me.ucrCboExamplePackages = New instat.ucrInputComboBox() + Me.tbPageRepeat = New System.Windows.Forms.TabPage() + Me.lblColumns = New System.Windows.Forms.Label() + Me.ucrReceiverColumns = New instat.ucrReceiverSingle() + Me.lblExpression = New System.Windows.Forms.Label() + Me.ucrReceiverForCalculation = New instat.ucrReceiverExpression() + Me.lblSelectColumns = New System.Windows.Forms.Label() + Me.ucrReceiverRank = New instat.ucrReceiverSingle() + Me.ucrSelectorForRank = New instat.ucrSelectorByDataFrameAddRemove() + Me.lblPreview = New System.Windows.Forms.Label() + Me.txtScript = New System.Windows.Forms.TextBox() Me.ucrBase = New instat.ucrButtons() Me.tbFeatures.SuspendLayout() Me.tbPageSaveData.SuspendLayout() Me.tbPageGetData.SuspendLayout() Me.tbPageCommand.SuspendLayout() Me.tbPageExamples.SuspendLayout() + Me.tbPageRepeat.SuspendLayout() Me.SuspendLayout() ' 'tbFeatures @@ -102,16 +117,23 @@ Partial Class dlgScript Me.tbFeatures.Controls.Add(Me.tbPageGetData) Me.tbFeatures.Controls.Add(Me.tbPageCommand) Me.tbFeatures.Controls.Add(Me.tbPageExamples) + Me.tbFeatures.Controls.Add(Me.tbPageRepeat) Me.tbFeatures.Location = New System.Drawing.Point(8, 7) Me.tbFeatures.Name = "tbFeatures" Me.tbFeatures.SelectedIndex = 0 - Me.tbFeatures.Size = New System.Drawing.Size(446, 271) + Me.tbFeatures.Size = New System.Drawing.Size(446, 304) Me.tbFeatures.TabIndex = 31 ' 'tbPageSaveData ' - Me.tbPageSaveData.Controls.Add(Me.ucrInputSaveRFile) Me.tbPageSaveData.Controls.Add(Me.rdoFromRFile) + Me.tbPageSaveData.Controls.Add(Me.ucrInputSaveRFile) + Me.tbPageSaveData.Controls.Add(Me.lblSaveText) + Me.tbPageSaveData.Controls.Add(Me.lblSaveDataFrame) + Me.tbPageSaveData.Controls.Add(Me.lblSaveColumn) + Me.tbPageSaveData.Controls.Add(Me.ucrInputDataframeColumn) + Me.tbPageSaveData.Controls.Add(Me.ucrInputSaveColumn) + Me.tbPageSaveData.Controls.Add(Me.rdoVariable) Me.tbPageSaveData.Controls.Add(Me.rdoDataFrame) Me.tbPageSaveData.Controls.Add(Me.ucrChkDisplayGraph) Me.tbPageSaveData.Controls.Add(Me.ucrChkSaveDataFrameSingle) @@ -129,7 +151,7 @@ Partial Class dlgScript Me.tbPageSaveData.Controls.Add(Me.ucrPnlSaveDataFrame) Me.tbPageSaveData.Location = New System.Drawing.Point(4, 22) Me.tbPageSaveData.Name = "tbPageSaveData" - Me.tbPageSaveData.Size = New System.Drawing.Size(438, 245) + Me.tbPageSaveData.Size = New System.Drawing.Size(438, 278) Me.tbPageSaveData.TabIndex = 2 Me.tbPageSaveData.Text = "Save Data" Me.tbPageSaveData.UseVisualStyleBackColor = True @@ -137,7 +159,7 @@ Partial Class dlgScript 'rdoFromRFile ' Me.rdoFromRFile.AutoSize = True - Me.rdoFromRFile.Location = New System.Drawing.Point(83, 125) + Me.rdoFromRFile.Location = New System.Drawing.Point(49, 202) Me.rdoFromRFile.Margin = New System.Windows.Forms.Padding(2) Me.rdoFromRFile.Name = "rdoFromRFile" Me.rdoFromRFile.Size = New System.Drawing.Size(81, 17) @@ -146,18 +168,125 @@ Partial Class dlgScript Me.rdoFromRFile.Text = "From R File:" Me.rdoFromRFile.UseVisualStyleBackColor = True ' + 'ucrInputSaveRFile + ' + Me.ucrInputSaveRFile.AddQuotesIfUnrecognised = True + Me.ucrInputSaveRFile.AutoSize = True + Me.ucrInputSaveRFile.IsMultiline = False + Me.ucrInputSaveRFile.IsReadOnly = False + Me.ucrInputSaveRFile.Location = New System.Drawing.Point(67, 228) + Me.ucrInputSaveRFile.Margin = New System.Windows.Forms.Padding(9) + Me.ucrInputSaveRFile.Name = "ucrInputSaveRFile" + Me.ucrInputSaveRFile.Size = New System.Drawing.Size(145, 21) + Me.ucrInputSaveRFile.TabIndex = 64 + ' + 'lblSaveText + ' + Me.lblSaveText.AutoSize = True + Me.lblSaveText.Location = New System.Drawing.Point(299, 72) + Me.lblSaveText.Name = "lblSaveText" + Me.lblSaveText.Size = New System.Drawing.Size(116, 13) + Me.lblSaveText.TabIndex = 71 + Me.lblSaveText.Text = "(separated by commas)" + ' + 'lblSaveDataFrame + ' + Me.lblSaveDataFrame.AutoSize = True + Me.lblSaveDataFrame.Location = New System.Drawing.Point(64, 103) + Me.lblSaveDataFrame.Name = "lblSaveDataFrame" + Me.lblSaveDataFrame.Size = New System.Drawing.Size(65, 13) + Me.lblSaveDataFrame.TabIndex = 70 + Me.lblSaveDataFrame.Text = "Data Frame:" + ' + 'lblSaveColumn + ' + Me.lblSaveColumn.AutoSize = True + Me.lblSaveColumn.Location = New System.Drawing.Point(64, 72) + Me.lblSaveColumn.Name = "lblSaveColumn" + Me.lblSaveColumn.Size = New System.Drawing.Size(49, 13) + Me.lblSaveColumn.TabIndex = 69 + Me.lblSaveColumn.Text = "Name(s):" + ' + 'ucrInputDataframeColumn + ' + Me.ucrInputDataframeColumn.AddQuotesIfUnrecognised = True + Me.ucrInputDataframeColumn.AutoSize = True + Me.ucrInputDataframeColumn.IsMultiline = False + Me.ucrInputDataframeColumn.IsReadOnly = False + Me.ucrInputDataframeColumn.Location = New System.Drawing.Point(131, 103) + Me.ucrInputDataframeColumn.Margin = New System.Windows.Forms.Padding(9) + Me.ucrInputDataframeColumn.Name = "ucrInputDataframeColumn" + Me.ucrInputDataframeColumn.Size = New System.Drawing.Size(155, 21) + Me.ucrInputDataframeColumn.TabIndex = 68 + ' + 'ucrInputSaveColumn + ' + Me.ucrInputSaveColumn.AddQuotesIfUnrecognised = True + Me.ucrInputSaveColumn.AutoSize = True + Me.ucrInputSaveColumn.IsMultiline = False + Me.ucrInputSaveColumn.IsReadOnly = False + Me.ucrInputSaveColumn.Location = New System.Drawing.Point(132, 72) + Me.ucrInputSaveColumn.Margin = New System.Windows.Forms.Padding(9) + Me.ucrInputSaveColumn.Name = "ucrInputSaveColumn" + Me.ucrInputSaveColumn.Size = New System.Drawing.Size(154, 21) + Me.ucrInputSaveColumn.TabIndex = 67 + ' + 'rdoVariable + ' + Me.rdoVariable.AutoSize = True + Me.rdoVariable.Location = New System.Drawing.Point(49, 48) + Me.rdoVariable.Margin = New System.Windows.Forms.Padding(2) + Me.rdoVariable.Name = "rdoVariable" + Me.rdoVariable.Size = New System.Drawing.Size(97, 17) + Me.rdoVariable.TabIndex = 66 + Me.rdoVariable.TabStop = True + Me.rdoVariable.Text = "From Variables:" + Me.rdoVariable.UseVisualStyleBackColor = True + ' 'rdoDataFrame ' Me.rdoDataFrame.AutoSize = True - Me.rdoDataFrame.Location = New System.Drawing.Point(83, 48) + Me.rdoDataFrame.Location = New System.Drawing.Point(48, 126) Me.rdoDataFrame.Margin = New System.Windows.Forms.Padding(2) Me.rdoDataFrame.Name = "rdoDataFrame" - Me.rdoDataFrame.Size = New System.Drawing.Size(109, 17) + Me.rdoDataFrame.Size = New System.Drawing.Size(104, 17) Me.rdoDataFrame.TabIndex = 62 Me.rdoDataFrame.TabStop = True - Me.rdoDataFrame.Text = "From Data Frame:" + Me.rdoDataFrame.Text = "Into Data Frame:" Me.rdoDataFrame.UseVisualStyleBackColor = True ' + 'ucrChkDisplayGraph + ' + Me.ucrChkDisplayGraph.AutoSize = True + Me.ucrChkDisplayGraph.Checked = False + Me.ucrChkDisplayGraph.Location = New System.Drawing.Point(88, 217) + Me.ucrChkDisplayGraph.Margin = New System.Windows.Forms.Padding(6) + Me.ucrChkDisplayGraph.Name = "ucrChkDisplayGraph" + Me.ucrChkDisplayGraph.Size = New System.Drawing.Size(113, 34) + Me.ucrChkDisplayGraph.TabIndex = 60 + ' + 'ucrChkSaveDataFrameSingle + ' + Me.ucrChkSaveDataFrameSingle.AutoSize = True + Me.ucrChkSaveDataFrameSingle.Checked = False + Me.ucrChkSaveDataFrameSingle.Location = New System.Drawing.Point(55, 174) + Me.ucrChkSaveDataFrameSingle.Margin = New System.Windows.Forms.Padding(6) + Me.ucrChkSaveDataFrameSingle.Name = "ucrChkSaveDataFrameSingle" + Me.ucrChkSaveDataFrameSingle.Size = New System.Drawing.Size(146, 34) + Me.ucrChkSaveDataFrameSingle.TabIndex = 59 + ' + 'ucrInputSaveDataFrame + ' + Me.ucrInputSaveDataFrame.AddQuotesIfUnrecognised = True + Me.ucrInputSaveDataFrame.AutoSize = True + Me.ucrInputSaveDataFrame.IsMultiline = False + Me.ucrInputSaveDataFrame.IsReadOnly = False + Me.ucrInputSaveDataFrame.Location = New System.Drawing.Point(67, 147) + Me.ucrInputSaveDataFrame.Margin = New System.Windows.Forms.Padding(9) + Me.ucrInputSaveDataFrame.Name = "ucrInputSaveDataFrame" + Me.ucrInputSaveDataFrame.Size = New System.Drawing.Size(145, 21) + Me.ucrInputSaveDataFrame.TabIndex = 57 + ' 'lblSaveObjectFormat ' Me.lblSaveObjectFormat.AutoSize = True @@ -167,6 +296,18 @@ Partial Class dlgScript Me.lblSaveObjectFormat.TabIndex = 56 Me.lblSaveObjectFormat.Text = "Format:" ' + 'ucrCboSaveOutputObjectFormat + ' + Me.ucrCboSaveOutputObjectFormat.AddQuotesIfUnrecognised = True + Me.ucrCboSaveOutputObjectFormat.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ucrCboSaveOutputObjectFormat.GetSetSelectedIndex = -1 + Me.ucrCboSaveOutputObjectFormat.IsReadOnly = False + Me.ucrCboSaveOutputObjectFormat.Location = New System.Drawing.Point(88, 160) + Me.ucrCboSaveOutputObjectFormat.Margin = New System.Windows.Forms.Padding(9) + Me.ucrCboSaveOutputObjectFormat.Name = "ucrCboSaveOutputObjectFormat" + Me.ucrCboSaveOutputObjectFormat.Size = New System.Drawing.Size(141, 21) + Me.ucrCboSaveOutputObjectFormat.TabIndex = 55 + ' 'lblSaveObjectType ' Me.lblSaveObjectType.AutoSize = True @@ -176,6 +317,18 @@ Partial Class dlgScript Me.lblSaveObjectType.TabIndex = 54 Me.lblSaveObjectType.Text = "Type:" ' + 'ucrCboSaveOutputObjectType + ' + Me.ucrCboSaveOutputObjectType.AddQuotesIfUnrecognised = True + Me.ucrCboSaveOutputObjectType.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ucrCboSaveOutputObjectType.GetSetSelectedIndex = -1 + Me.ucrCboSaveOutputObjectType.IsReadOnly = False + Me.ucrCboSaveOutputObjectType.Location = New System.Drawing.Point(87, 116) + Me.ucrCboSaveOutputObjectType.Margin = New System.Windows.Forms.Padding(9) + Me.ucrCboSaveOutputObjectType.Name = "ucrCboSaveOutputObjectType" + Me.ucrCboSaveOutputObjectType.Size = New System.Drawing.Size(144, 21) + Me.ucrCboSaveOutputObjectType.TabIndex = 53 + ' 'rdoSaveOutputObject ' Me.rdoSaveOutputObject.Appearance = System.Windows.Forms.Appearance.Button @@ -227,6 +380,44 @@ Partial Class dlgScript Me.rdoSaveColumn.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.rdoSaveColumn.UseVisualStyleBackColor = True ' + 'ucrSaveObject + ' + Me.ucrSaveObject.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ucrSaveObject.Location = New System.Drawing.Point(88, 193) + Me.ucrSaveObject.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.ucrSaveObject.Name = "ucrSaveObject" + Me.ucrSaveObject.Size = New System.Drawing.Size(258, 22) + Me.ucrSaveObject.TabIndex = 35 + ' + 'ucrDataFrameSaveOutputSelect + ' + Me.ucrDataFrameSaveOutputSelect.AutoSize = True + Me.ucrDataFrameSaveOutputSelect.bDropUnusedFilterLevels = False + Me.ucrDataFrameSaveOutputSelect.bUseCurrentFilter = True + Me.ucrDataFrameSaveOutputSelect.Location = New System.Drawing.Point(86, 54) + Me.ucrDataFrameSaveOutputSelect.Margin = New System.Windows.Forms.Padding(0) + Me.ucrDataFrameSaveOutputSelect.Name = "ucrDataFrameSaveOutputSelect" + Me.ucrDataFrameSaveOutputSelect.Size = New System.Drawing.Size(224, 59) + Me.ucrDataFrameSaveOutputSelect.TabIndex = 29 + ' + 'ucrPnlSaveData + ' + Me.ucrPnlSaveData.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ucrPnlSaveData.Location = New System.Drawing.Point(13, 12) + Me.ucrPnlSaveData.Margin = New System.Windows.Forms.Padding(6) + Me.ucrPnlSaveData.Name = "ucrPnlSaveData" + Me.ucrPnlSaveData.Size = New System.Drawing.Size(402, 36) + Me.ucrPnlSaveData.TabIndex = 47 + ' + 'ucrPnlSaveDataFrame + ' + Me.ucrPnlSaveDataFrame.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ucrPnlSaveDataFrame.Location = New System.Drawing.Point(5, 48) + Me.ucrPnlSaveDataFrame.Margin = New System.Windows.Forms.Padding(6) + Me.ucrPnlSaveDataFrame.Name = "ucrPnlSaveDataFrame" + Me.ucrPnlSaveDataFrame.Size = New System.Drawing.Size(429, 208) + Me.ucrPnlSaveDataFrame.TabIndex = 65 + ' 'tbPageGetData ' Me.tbPageGetData.Controls.Add(Me.ucrReceiverGetOutputObject) @@ -244,11 +435,37 @@ Partial Class dlgScript Me.tbPageGetData.Location = New System.Drawing.Point(4, 22) Me.tbPageGetData.Name = "tbPageGetData" Me.tbPageGetData.Padding = New System.Windows.Forms.Padding(3) - Me.tbPageGetData.Size = New System.Drawing.Size(438, 245) + Me.tbPageGetData.Size = New System.Drawing.Size(438, 278) Me.tbPageGetData.TabIndex = 1 Me.tbPageGetData.Text = "Get Data" Me.tbPageGetData.UseVisualStyleBackColor = True ' + 'ucrReceiverGetOutputObject + ' + Me.ucrReceiverGetOutputObject.AutoSize = True + Me.ucrReceiverGetOutputObject.frmParent = Nothing + Me.ucrReceiverGetOutputObject.Location = New System.Drawing.Point(240, 117) + Me.ucrReceiverGetOutputObject.Margin = New System.Windows.Forms.Padding(0) + Me.ucrReceiverGetOutputObject.Name = "ucrReceiverGetOutputObject" + Me.ucrReceiverGetOutputObject.Selector = Nothing + Me.ucrReceiverGetOutputObject.Size = New System.Drawing.Size(138, 20) + Me.ucrReceiverGetOutputObject.strNcFilePath = "" + Me.ucrReceiverGetOutputObject.TabIndex = 27 + Me.ucrReceiverGetOutputObject.ucrSelector = Nothing + ' + 'ucrReceiverGetColumns + ' + Me.ucrReceiverGetColumns.AutoSize = True + Me.ucrReceiverGetColumns.frmParent = Nothing + Me.ucrReceiverGetColumns.Location = New System.Drawing.Point(243, 104) + Me.ucrReceiverGetColumns.Margin = New System.Windows.Forms.Padding(0) + Me.ucrReceiverGetColumns.Name = "ucrReceiverGetColumns" + Me.ucrReceiverGetColumns.Selector = Nothing + Me.ucrReceiverGetColumns.Size = New System.Drawing.Size(137, 105) + Me.ucrReceiverGetColumns.strNcFilePath = "" + Me.ucrReceiverGetColumns.TabIndex = 49 + Me.ucrReceiverGetColumns.ucrSelector = Nothing + ' 'lblGetColumn ' Me.lblGetColumn.AutoSize = True @@ -329,6 +546,50 @@ Partial Class dlgScript Me.rdoGetColumn.TextAlign = System.Drawing.ContentAlignment.MiddleCenter Me.rdoGetColumn.UseVisualStyleBackColor = True ' + 'ucrDataFrameGetDF + ' + Me.ucrDataFrameGetDF.AutoSize = True + Me.ucrDataFrameGetDF.bDropUnusedFilterLevels = False + Me.ucrDataFrameGetDF.bUseCurrentFilter = True + Me.ucrDataFrameGetDF.Location = New System.Drawing.Point(81, 55) + Me.ucrDataFrameGetDF.Margin = New System.Windows.Forms.Padding(0) + Me.ucrDataFrameGetDF.Name = "ucrDataFrameGetDF" + Me.ucrDataFrameGetDF.Size = New System.Drawing.Size(224, 59) + Me.ucrDataFrameGetDF.TabIndex = 31 + ' + 'ucrCboGetOutputObjectType + ' + Me.ucrCboGetOutputObjectType.AddQuotesIfUnrecognised = True + Me.ucrCboGetOutputObjectType.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ucrCboGetOutputObjectType.GetSetSelectedIndex = -1 + Me.ucrCboGetOutputObjectType.IsReadOnly = False + Me.ucrCboGetOutputObjectType.Location = New System.Drawing.Point(241, 72) + Me.ucrCboGetOutputObjectType.Margin = New System.Windows.Forms.Padding(9) + Me.ucrCboGetOutputObjectType.Name = "ucrCboGetOutputObjectType" + Me.ucrCboGetOutputObjectType.Size = New System.Drawing.Size(137, 21) + Me.ucrCboGetOutputObjectType.TabIndex = 47 + ' + 'ucrPnlGetData + ' + Me.ucrPnlGetData.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ucrPnlGetData.Location = New System.Drawing.Point(5, 10) + Me.ucrPnlGetData.Margin = New System.Windows.Forms.Padding(6) + Me.ucrPnlGetData.Name = "ucrPnlGetData" + Me.ucrPnlGetData.Size = New System.Drawing.Size(402, 36) + Me.ucrPnlGetData.TabIndex = 42 + ' + 'ucrSelectorGetObject + ' + Me.ucrSelectorGetObject.AutoSize = True + Me.ucrSelectorGetObject.bDropUnusedFilterLevels = False + Me.ucrSelectorGetObject.bShowHiddenColumns = False + Me.ucrSelectorGetObject.bUseCurrentFilter = True + Me.ucrSelectorGetObject.Location = New System.Drawing.Point(9, 52) + Me.ucrSelectorGetObject.Margin = New System.Windows.Forms.Padding(0) + Me.ucrSelectorGetObject.Name = "ucrSelectorGetObject" + Me.ucrSelectorGetObject.Size = New System.Drawing.Size(320, 274) + Me.ucrSelectorGetObject.TabIndex = 34 + ' 'tbPageCommand ' Me.tbPageCommand.Controls.Add(Me.ucrChkWindow) @@ -354,11 +615,21 @@ Partial Class dlgScript Me.tbPageCommand.Controls.Add(Me.ucrPnlCommands) Me.tbPageCommand.Location = New System.Drawing.Point(4, 22) Me.tbPageCommand.Name = "tbPageCommand" - Me.tbPageCommand.Size = New System.Drawing.Size(438, 245) + Me.tbPageCommand.Size = New System.Drawing.Size(438, 278) Me.tbPageCommand.TabIndex = 3 Me.tbPageCommand.Text = "Commands" Me.tbPageCommand.UseVisualStyleBackColor = True ' + 'ucrChkWindow + ' + Me.ucrChkWindow.AutoSize = True + Me.ucrChkWindow.Checked = False + Me.ucrChkWindow.Location = New System.Drawing.Point(233, 94) + Me.ucrChkWindow.Margin = New System.Windows.Forms.Padding(6) + Me.ucrChkWindow.Name = "ucrChkWindow" + Me.ucrChkWindow.Size = New System.Drawing.Size(126, 34) + Me.ucrChkWindow.TabIndex = 67 + ' 'rdoWindow ' Me.rdoWindow.AutoSize = True @@ -461,313 +732,17 @@ Partial Class dlgScript Me.rdoCommandObject.Text = "Remove Object(s):" Me.rdoCommandObject.UseVisualStyleBackColor = True ' - 'tbPageExamples + 'ucrChkInto ' - Me.tbPageExamples.Controls.Add(Me.cmdHelp) - Me.tbPageExamples.Controls.Add(Me.rdoExampleData) - Me.tbPageExamples.Controls.Add(Me.rdoExampleFunction) - Me.tbPageExamples.Controls.Add(Me.ucrPnlExample) - Me.tbPageExamples.Controls.Add(Me.lstExampleCollection) - Me.tbPageExamples.Controls.Add(Me.Label3) - Me.tbPageExamples.Controls.Add(Me.ucrCboExamplePackages) - Me.tbPageExamples.Location = New System.Drawing.Point(4, 22) - Me.tbPageExamples.Name = "tbPageExamples" - Me.tbPageExamples.Size = New System.Drawing.Size(438, 245) - Me.tbPageExamples.TabIndex = 4 - Me.tbPageExamples.Text = "Library" - Me.tbPageExamples.UseVisualStyleBackColor = True + Me.ucrChkInto.AutoSize = True + Me.ucrChkInto.Checked = False + Me.ucrChkInto.Location = New System.Drawing.Point(233, 33) + Me.ucrChkInto.Margin = New System.Windows.Forms.Padding(6) + Me.ucrChkInto.Name = "ucrChkInto" + Me.ucrChkInto.Size = New System.Drawing.Size(84, 34) + Me.ucrChkInto.TabIndex = 63 ' - 'cmdHelp - ' - Me.cmdHelp.Location = New System.Drawing.Point(361, 4) - Me.cmdHelp.Name = "cmdHelp" - Me.cmdHelp.Size = New System.Drawing.Size(75, 23) - Me.cmdHelp.TabIndex = 61 - Me.cmdHelp.Text = "R Help" - Me.cmdHelp.UseVisualStyleBackColor = True - ' - 'rdoExampleData - ' - Me.rdoExampleData.Appearance = System.Windows.Forms.Appearance.Button - Me.rdoExampleData.FlatAppearance.BorderColor = System.Drawing.SystemColors.ActiveCaption - Me.rdoExampleData.FlatAppearance.BorderSize = 2 - Me.rdoExampleData.FlatAppearance.CheckedBackColor = System.Drawing.SystemColors.ActiveCaption - Me.rdoExampleData.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.rdoExampleData.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.rdoExampleData.Location = New System.Drawing.Point(14, 54) - Me.rdoExampleData.Name = "rdoExampleData" - Me.rdoExampleData.Size = New System.Drawing.Size(80, 30) - Me.rdoExampleData.TabIndex = 57 - Me.rdoExampleData.TabStop = True - Me.rdoExampleData.Text = "Data" - Me.rdoExampleData.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - Me.rdoExampleData.UseVisualStyleBackColor = True - ' - 'rdoExampleFunction - ' - Me.rdoExampleFunction.Appearance = System.Windows.Forms.Appearance.Button - Me.rdoExampleFunction.FlatAppearance.BorderColor = System.Drawing.SystemColors.ActiveCaption - Me.rdoExampleFunction.FlatAppearance.BorderSize = 2 - Me.rdoExampleFunction.FlatAppearance.CheckedBackColor = System.Drawing.SystemColors.ActiveCaption - Me.rdoExampleFunction.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.rdoExampleFunction.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.rdoExampleFunction.Location = New System.Drawing.Point(92, 54) - Me.rdoExampleFunction.Name = "rdoExampleFunction" - Me.rdoExampleFunction.Size = New System.Drawing.Size(80, 30) - Me.rdoExampleFunction.TabIndex = 58 - Me.rdoExampleFunction.TabStop = True - Me.rdoExampleFunction.Text = "Function" - Me.rdoExampleFunction.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - Me.rdoExampleFunction.UseVisualStyleBackColor = True - ' - 'lstExampleCollection - ' - Me.lstExampleCollection.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.clmDatasets, Me.clmDesc}) - Me.lstExampleCollection.FullRowSelect = True - Me.lstExampleCollection.HideSelection = False - Me.lstExampleCollection.Location = New System.Drawing.Point(3, 93) - Me.lstExampleCollection.MultiSelect = False - Me.lstExampleCollection.Name = "lstExampleCollection" - Me.lstExampleCollection.ShowGroups = False - Me.lstExampleCollection.ShowItemToolTips = True - Me.lstExampleCollection.Size = New System.Drawing.Size(415, 146) - Me.lstExampleCollection.Sorting = System.Windows.Forms.SortOrder.Ascending - Me.lstExampleCollection.TabIndex = 53 - Me.lstExampleCollection.UseCompatibleStateImageBehavior = False - Me.lstExampleCollection.View = System.Windows.Forms.View.Details - ' - 'clmDatasets - ' - Me.clmDatasets.Text = "Data" - Me.clmDatasets.Width = 142 - ' - 'clmDesc - ' - Me.clmDesc.Text = "Description" - Me.clmDesc.Width = 266 - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Location = New System.Drawing.Point(13, 5) - Me.Label3.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(50, 13) - Me.Label3.TabIndex = 52 - Me.Label3.Text = "Package" - ' - 'lblPreview - ' - Me.lblPreview.AutoSize = True - Me.lblPreview.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.lblPreview.Location = New System.Drawing.Point(9, 281) - Me.lblPreview.Name = "lblPreview" - Me.lblPreview.Size = New System.Drawing.Size(48, 13) - Me.lblPreview.TabIndex = 30 - Me.lblPreview.Text = "Preview:" - ' - 'txtScript - ' - Me.txtScript.Location = New System.Drawing.Point(5, 299) - Me.txtScript.Multiline = True - Me.txtScript.Name = "txtScript" - Me.txtScript.ScrollBars = System.Windows.Forms.ScrollBars.Both - Me.txtScript.Size = New System.Drawing.Size(445, 96) - Me.txtScript.TabIndex = 32 - ' - 'ucrInputSaveRFile - ' - Me.ucrInputSaveRFile.AddQuotesIfUnrecognised = True - Me.ucrInputSaveRFile.AutoSize = True - Me.ucrInputSaveRFile.IsMultiline = False - Me.ucrInputSaveRFile.IsReadOnly = False - Me.ucrInputSaveRFile.Location = New System.Drawing.Point(92, 150) - Me.ucrInputSaveRFile.Margin = New System.Windows.Forms.Padding(9) - Me.ucrInputSaveRFile.Name = "ucrInputSaveRFile" - Me.ucrInputSaveRFile.Size = New System.Drawing.Size(145, 21) - Me.ucrInputSaveRFile.TabIndex = 64 - ' - 'ucrChkDisplayGraph - ' - Me.ucrChkDisplayGraph.AutoSize = True - Me.ucrChkDisplayGraph.Checked = False - Me.ucrChkDisplayGraph.Location = New System.Drawing.Point(88, 217) - Me.ucrChkDisplayGraph.Name = "ucrChkDisplayGraph" - Me.ucrChkDisplayGraph.Size = New System.Drawing.Size(113, 23) - Me.ucrChkDisplayGraph.TabIndex = 60 - ' - 'ucrChkSaveDataFrameSingle - ' - Me.ucrChkSaveDataFrameSingle.AutoSize = True - Me.ucrChkSaveDataFrameSingle.Checked = False - Me.ucrChkSaveDataFrameSingle.Location = New System.Drawing.Point(91, 101) - Me.ucrChkSaveDataFrameSingle.Name = "ucrChkSaveDataFrameSingle" - Me.ucrChkSaveDataFrameSingle.Size = New System.Drawing.Size(146, 23) - Me.ucrChkSaveDataFrameSingle.TabIndex = 59 - ' - 'ucrInputSaveDataFrame - ' - Me.ucrInputSaveDataFrame.AddQuotesIfUnrecognised = True - Me.ucrInputSaveDataFrame.AutoSize = True - Me.ucrInputSaveDataFrame.IsMultiline = False - Me.ucrInputSaveDataFrame.IsReadOnly = False - Me.ucrInputSaveDataFrame.Location = New System.Drawing.Point(92, 70) - Me.ucrInputSaveDataFrame.Margin = New System.Windows.Forms.Padding(9) - Me.ucrInputSaveDataFrame.Name = "ucrInputSaveDataFrame" - Me.ucrInputSaveDataFrame.Size = New System.Drawing.Size(145, 21) - Me.ucrInputSaveDataFrame.TabIndex = 57 - ' - 'ucrCboSaveOutputObjectFormat - ' - Me.ucrCboSaveOutputObjectFormat.AddQuotesIfUnrecognised = True - Me.ucrCboSaveOutputObjectFormat.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrCboSaveOutputObjectFormat.GetSetSelectedIndex = -1 - Me.ucrCboSaveOutputObjectFormat.IsReadOnly = False - Me.ucrCboSaveOutputObjectFormat.Location = New System.Drawing.Point(88, 160) - Me.ucrCboSaveOutputObjectFormat.Margin = New System.Windows.Forms.Padding(9) - Me.ucrCboSaveOutputObjectFormat.Name = "ucrCboSaveOutputObjectFormat" - Me.ucrCboSaveOutputObjectFormat.Size = New System.Drawing.Size(141, 21) - Me.ucrCboSaveOutputObjectFormat.TabIndex = 55 - ' - 'ucrCboSaveOutputObjectType - ' - Me.ucrCboSaveOutputObjectType.AddQuotesIfUnrecognised = True - Me.ucrCboSaveOutputObjectType.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrCboSaveOutputObjectType.GetSetSelectedIndex = -1 - Me.ucrCboSaveOutputObjectType.IsReadOnly = False - Me.ucrCboSaveOutputObjectType.Location = New System.Drawing.Point(87, 116) - Me.ucrCboSaveOutputObjectType.Margin = New System.Windows.Forms.Padding(9) - Me.ucrCboSaveOutputObjectType.Name = "ucrCboSaveOutputObjectType" - Me.ucrCboSaveOutputObjectType.Size = New System.Drawing.Size(144, 21) - Me.ucrCboSaveOutputObjectType.TabIndex = 53 - ' - 'ucrSaveObject - ' - Me.ucrSaveObject.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrSaveObject.Location = New System.Drawing.Point(88, 193) - Me.ucrSaveObject.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) - Me.ucrSaveObject.Name = "ucrSaveObject" - Me.ucrSaveObject.Size = New System.Drawing.Size(258, 22) - Me.ucrSaveObject.TabIndex = 35 - ' - 'ucrDataFrameSaveOutputSelect - ' - Me.ucrDataFrameSaveOutputSelect.AutoSize = True - Me.ucrDataFrameSaveOutputSelect.bDropUnusedFilterLevels = False - Me.ucrDataFrameSaveOutputSelect.bUseCurrentFilter = True - Me.ucrDataFrameSaveOutputSelect.Location = New System.Drawing.Point(86, 54) - Me.ucrDataFrameSaveOutputSelect.Margin = New System.Windows.Forms.Padding(0) - Me.ucrDataFrameSaveOutputSelect.Name = "ucrDataFrameSaveOutputSelect" - Me.ucrDataFrameSaveOutputSelect.Size = New System.Drawing.Size(224, 59) - Me.ucrDataFrameSaveOutputSelect.TabIndex = 29 - ' - 'ucrPnlSaveData - ' - Me.ucrPnlSaveData.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrPnlSaveData.Location = New System.Drawing.Point(13, 12) - Me.ucrPnlSaveData.Margin = New System.Windows.Forms.Padding(6) - Me.ucrPnlSaveData.Name = "ucrPnlSaveData" - Me.ucrPnlSaveData.Size = New System.Drawing.Size(402, 36) - Me.ucrPnlSaveData.TabIndex = 47 - ' - 'ucrPnlSaveDataFrame - ' - Me.ucrPnlSaveDataFrame.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrPnlSaveDataFrame.Location = New System.Drawing.Point(5, 48) - Me.ucrPnlSaveDataFrame.Margin = New System.Windows.Forms.Padding(6) - Me.ucrPnlSaveDataFrame.Name = "ucrPnlSaveDataFrame" - Me.ucrPnlSaveDataFrame.Size = New System.Drawing.Size(429, 134) - Me.ucrPnlSaveDataFrame.TabIndex = 65 - ' - 'ucrReceiverGetOutputObject - ' - Me.ucrReceiverGetOutputObject.AutoSize = True - Me.ucrReceiverGetOutputObject.frmParent = Nothing - Me.ucrReceiverGetOutputObject.Location = New System.Drawing.Point(240, 117) - Me.ucrReceiverGetOutputObject.Margin = New System.Windows.Forms.Padding(0) - Me.ucrReceiverGetOutputObject.Name = "ucrReceiverGetOutputObject" - Me.ucrReceiverGetOutputObject.Selector = Nothing - Me.ucrReceiverGetOutputObject.Size = New System.Drawing.Size(138, 20) - Me.ucrReceiverGetOutputObject.strNcFilePath = "" - Me.ucrReceiverGetOutputObject.TabIndex = 27 - Me.ucrReceiverGetOutputObject.ucrSelector = Nothing - ' - 'ucrReceiverGetColumns - ' - Me.ucrReceiverGetColumns.AutoSize = True - Me.ucrReceiverGetColumns.frmParent = Nothing - Me.ucrReceiverGetColumns.Location = New System.Drawing.Point(243, 104) - Me.ucrReceiverGetColumns.Margin = New System.Windows.Forms.Padding(0) - Me.ucrReceiverGetColumns.Name = "ucrReceiverGetColumns" - Me.ucrReceiverGetColumns.Selector = Nothing - Me.ucrReceiverGetColumns.Size = New System.Drawing.Size(137, 105) - Me.ucrReceiverGetColumns.strNcFilePath = "" - Me.ucrReceiverGetColumns.TabIndex = 49 - Me.ucrReceiverGetColumns.ucrSelector = Nothing - ' - 'ucrDataFrameGetDF - ' - Me.ucrDataFrameGetDF.AutoSize = True - Me.ucrDataFrameGetDF.bDropUnusedFilterLevels = False - Me.ucrDataFrameGetDF.bUseCurrentFilter = True - Me.ucrDataFrameGetDF.Location = New System.Drawing.Point(81, 55) - Me.ucrDataFrameGetDF.Margin = New System.Windows.Forms.Padding(0) - Me.ucrDataFrameGetDF.Name = "ucrDataFrameGetDF" - Me.ucrDataFrameGetDF.Size = New System.Drawing.Size(224, 59) - Me.ucrDataFrameGetDF.TabIndex = 31 - ' - 'ucrCboGetOutputObjectType - ' - Me.ucrCboGetOutputObjectType.AddQuotesIfUnrecognised = True - Me.ucrCboGetOutputObjectType.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrCboGetOutputObjectType.GetSetSelectedIndex = -1 - Me.ucrCboGetOutputObjectType.IsReadOnly = False - Me.ucrCboGetOutputObjectType.Location = New System.Drawing.Point(241, 72) - Me.ucrCboGetOutputObjectType.Margin = New System.Windows.Forms.Padding(9) - Me.ucrCboGetOutputObjectType.Name = "ucrCboGetOutputObjectType" - Me.ucrCboGetOutputObjectType.Size = New System.Drawing.Size(137, 21) - Me.ucrCboGetOutputObjectType.TabIndex = 47 - ' - 'ucrPnlGetData - ' - Me.ucrPnlGetData.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrPnlGetData.Location = New System.Drawing.Point(5, 10) - Me.ucrPnlGetData.Margin = New System.Windows.Forms.Padding(6) - Me.ucrPnlGetData.Name = "ucrPnlGetData" - Me.ucrPnlGetData.Size = New System.Drawing.Size(402, 36) - Me.ucrPnlGetData.TabIndex = 42 - ' - 'ucrSelectorGetObject - ' - Me.ucrSelectorGetObject.AutoSize = True - Me.ucrSelectorGetObject.bDropUnusedFilterLevels = False - Me.ucrSelectorGetObject.bShowHiddenColumns = False - Me.ucrSelectorGetObject.bUseCurrentFilter = True - Me.ucrSelectorGetObject.Location = New System.Drawing.Point(9, 52) - Me.ucrSelectorGetObject.Margin = New System.Windows.Forms.Padding(0) - Me.ucrSelectorGetObject.Name = "ucrSelectorGetObject" - Me.ucrSelectorGetObject.Size = New System.Drawing.Size(320, 274) - Me.ucrSelectorGetObject.TabIndex = 34 - ' - 'ucrChkWindow - ' - Me.ucrChkWindow.AutoSize = True - Me.ucrChkWindow.Checked = False - Me.ucrChkWindow.Location = New System.Drawing.Point(233, 94) - Me.ucrChkWindow.Name = "ucrChkWindow" - Me.ucrChkWindow.Size = New System.Drawing.Size(126, 23) - Me.ucrChkWindow.TabIndex = 67 - ' - 'ucrChkInto - ' - Me.ucrChkInto.AutoSize = True - Me.ucrChkInto.Checked = False - Me.ucrChkInto.Location = New System.Drawing.Point(233, 33) - Me.ucrChkInto.Name = "ucrChkInto" - Me.ucrChkInto.Size = New System.Drawing.Size(84, 23) - Me.ucrChkInto.TabIndex = 63 - ' - 'ucrInputSaveData + 'ucrInputSaveData ' Me.ucrInputSaveData.AddQuotesIfUnrecognised = True Me.ucrInputSaveData.AutoSize = True @@ -820,8 +795,9 @@ Partial Class dlgScript Me.ucrChkOpenRFile.AutoSize = True Me.ucrChkOpenRFile.Checked = False Me.ucrChkOpenRFile.Location = New System.Drawing.Point(156, 64) + Me.ucrChkOpenRFile.Margin = New System.Windows.Forms.Padding(6) Me.ucrChkOpenRFile.Name = "ucrChkOpenRFile" - Me.ucrChkOpenRFile.Size = New System.Drawing.Size(100, 23) + Me.ucrChkOpenRFile.Size = New System.Drawing.Size(100, 34) Me.ucrChkOpenRFile.TabIndex = 53 ' 'ucrInputChooseFile @@ -881,6 +857,65 @@ Partial Class dlgScript Me.ucrPnlCommands.Size = New System.Drawing.Size(429, 238) Me.ucrPnlCommands.TabIndex = 47 ' + 'tbPageExamples + ' + Me.tbPageExamples.Controls.Add(Me.cmdHelp) + Me.tbPageExamples.Controls.Add(Me.rdoExampleData) + Me.tbPageExamples.Controls.Add(Me.rdoExampleFunction) + Me.tbPageExamples.Controls.Add(Me.ucrPnlExample) + Me.tbPageExamples.Controls.Add(Me.lstExampleCollection) + Me.tbPageExamples.Controls.Add(Me.Label3) + Me.tbPageExamples.Controls.Add(Me.ucrCboExamplePackages) + Me.tbPageExamples.Location = New System.Drawing.Point(4, 22) + Me.tbPageExamples.Name = "tbPageExamples" + Me.tbPageExamples.Size = New System.Drawing.Size(438, 278) + Me.tbPageExamples.TabIndex = 4 + Me.tbPageExamples.Text = "Library" + Me.tbPageExamples.UseVisualStyleBackColor = True + ' + 'cmdHelp + ' + Me.cmdHelp.Location = New System.Drawing.Point(361, 4) + Me.cmdHelp.Name = "cmdHelp" + Me.cmdHelp.Size = New System.Drawing.Size(75, 23) + Me.cmdHelp.TabIndex = 61 + Me.cmdHelp.Text = "R Help" + Me.cmdHelp.UseVisualStyleBackColor = True + ' + 'rdoExampleData + ' + Me.rdoExampleData.Appearance = System.Windows.Forms.Appearance.Button + Me.rdoExampleData.FlatAppearance.BorderColor = System.Drawing.SystemColors.ActiveCaption + Me.rdoExampleData.FlatAppearance.BorderSize = 2 + Me.rdoExampleData.FlatAppearance.CheckedBackColor = System.Drawing.SystemColors.ActiveCaption + Me.rdoExampleData.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.rdoExampleData.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.rdoExampleData.Location = New System.Drawing.Point(14, 54) + Me.rdoExampleData.Name = "rdoExampleData" + Me.rdoExampleData.Size = New System.Drawing.Size(80, 30) + Me.rdoExampleData.TabIndex = 57 + Me.rdoExampleData.TabStop = True + Me.rdoExampleData.Text = "Data" + Me.rdoExampleData.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + Me.rdoExampleData.UseVisualStyleBackColor = True + ' + 'rdoExampleFunction + ' + Me.rdoExampleFunction.Appearance = System.Windows.Forms.Appearance.Button + Me.rdoExampleFunction.FlatAppearance.BorderColor = System.Drawing.SystemColors.ActiveCaption + Me.rdoExampleFunction.FlatAppearance.BorderSize = 2 + Me.rdoExampleFunction.FlatAppearance.CheckedBackColor = System.Drawing.SystemColors.ActiveCaption + Me.rdoExampleFunction.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.rdoExampleFunction.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.rdoExampleFunction.Location = New System.Drawing.Point(92, 54) + Me.rdoExampleFunction.Name = "rdoExampleFunction" + Me.rdoExampleFunction.Size = New System.Drawing.Size(80, 30) + Me.rdoExampleFunction.TabIndex = 58 + Me.rdoExampleFunction.TabStop = True + Me.rdoExampleFunction.Text = "Function" + Me.rdoExampleFunction.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + Me.rdoExampleFunction.UseVisualStyleBackColor = True + ' 'ucrPnlExample ' Me.ucrPnlExample.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink @@ -890,6 +925,42 @@ Partial Class dlgScript Me.ucrPnlExample.Size = New System.Drawing.Size(402, 34) Me.ucrPnlExample.TabIndex = 56 ' + 'lstExampleCollection + ' + Me.lstExampleCollection.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.clmDatasets, Me.clmDesc}) + Me.lstExampleCollection.FullRowSelect = True + Me.lstExampleCollection.HideSelection = False + Me.lstExampleCollection.Location = New System.Drawing.Point(3, 93) + Me.lstExampleCollection.MultiSelect = False + Me.lstExampleCollection.Name = "lstExampleCollection" + Me.lstExampleCollection.ShowGroups = False + Me.lstExampleCollection.ShowItemToolTips = True + Me.lstExampleCollection.Size = New System.Drawing.Size(415, 146) + Me.lstExampleCollection.Sorting = System.Windows.Forms.SortOrder.Ascending + Me.lstExampleCollection.TabIndex = 53 + Me.lstExampleCollection.UseCompatibleStateImageBehavior = False + Me.lstExampleCollection.View = System.Windows.Forms.View.Details + ' + 'clmDatasets + ' + Me.clmDatasets.Text = "Data" + Me.clmDatasets.Width = 142 + ' + 'clmDesc + ' + Me.clmDesc.Text = "Description" + Me.clmDesc.Width = 266 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(13, 5) + Me.Label3.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(50, 13) + Me.Label3.TabIndex = 52 + Me.Label3.Text = "Package" + ' 'ucrCboExamplePackages ' Me.ucrCboExamplePackages.AddQuotesIfUnrecognised = True @@ -902,11 +973,132 @@ Partial Class dlgScript Me.ucrCboExamplePackages.Size = New System.Drawing.Size(137, 21) Me.ucrCboExamplePackages.TabIndex = 51 ' + 'tbPageRepeat + ' + Me.tbPageRepeat.Controls.Add(Me.lblColumns) + Me.tbPageRepeat.Controls.Add(Me.ucrReceiverColumns) + Me.tbPageRepeat.Controls.Add(Me.lblExpression) + Me.tbPageRepeat.Controls.Add(Me.ucrReceiverForCalculation) + Me.tbPageRepeat.Controls.Add(Me.lblSelectColumns) + Me.tbPageRepeat.Controls.Add(Me.ucrReceiverRank) + Me.tbPageRepeat.Controls.Add(Me.ucrSelectorForRank) + Me.tbPageRepeat.Location = New System.Drawing.Point(4, 22) + Me.tbPageRepeat.Name = "tbPageRepeat" + Me.tbPageRepeat.Padding = New System.Windows.Forms.Padding(3) + Me.tbPageRepeat.Size = New System.Drawing.Size(438, 278) + Me.tbPageRepeat.TabIndex = 5 + Me.tbPageRepeat.Text = "Repeat" + Me.tbPageRepeat.UseVisualStyleBackColor = True + ' + 'lblColumns + ' + Me.lblColumns.AutoSize = True + Me.lblColumns.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lblColumns.Location = New System.Drawing.Point(248, 83) + Me.lblColumns.Name = "lblColumns" + Me.lblColumns.Size = New System.Drawing.Size(50, 13) + Me.lblColumns.TabIndex = 124 + Me.lblColumns.Tag = "" + Me.lblColumns.Text = "Columns:" + ' + 'ucrReceiverColumns + ' + Me.ucrReceiverColumns.AutoSize = True + Me.ucrReceiverColumns.frmParent = Nothing + Me.ucrReceiverColumns.Location = New System.Drawing.Point(246, 101) + Me.ucrReceiverColumns.Margin = New System.Windows.Forms.Padding(0) + Me.ucrReceiverColumns.Name = "ucrReceiverColumns" + Me.ucrReceiverColumns.Selector = Nothing + Me.ucrReceiverColumns.Size = New System.Drawing.Size(120, 20) + Me.ucrReceiverColumns.strNcFilePath = "" + Me.ucrReceiverColumns.TabIndex = 123 + Me.ucrReceiverColumns.ucrSelector = Nothing + ' + 'lblExpression + ' + Me.lblExpression.AutoSize = True + Me.lblExpression.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lblExpression.Location = New System.Drawing.Point(12, 213) + Me.lblExpression.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) + Me.lblExpression.Name = "lblExpression" + Me.lblExpression.Size = New System.Drawing.Size(58, 13) + Me.lblExpression.TabIndex = 122 + Me.lblExpression.Tag = "Expression" + Me.lblExpression.Text = "Statement:" + ' + 'ucrReceiverForCalculation + ' + Me.ucrReceiverForCalculation.AutoSize = True + Me.ucrReceiverForCalculation.frmParent = Nothing + Me.ucrReceiverForCalculation.Location = New System.Drawing.Point(9, 235) + Me.ucrReceiverForCalculation.Margin = New System.Windows.Forms.Padding(2) + Me.ucrReceiverForCalculation.Name = "ucrReceiverForCalculation" + Me.ucrReceiverForCalculation.Selector = Nothing + Me.ucrReceiverForCalculation.Size = New System.Drawing.Size(390, 30) + Me.ucrReceiverForCalculation.strNcFilePath = "" + Me.ucrReceiverForCalculation.TabIndex = 121 + Me.ucrReceiverForCalculation.ucrSelector = Nothing + ' + 'lblSelectColumns + ' + Me.lblSelectColumns.AutoSize = True + Me.lblSelectColumns.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lblSelectColumns.Location = New System.Drawing.Point(248, 32) + Me.lblSelectColumns.Name = "lblSelectColumns" + Me.lblSelectColumns.Size = New System.Drawing.Size(40, 13) + Me.lblSelectColumns.TabIndex = 10 + Me.lblSelectColumns.Tag = "" + Me.lblSelectColumns.Text = "Select:" + ' + 'ucrReceiverRank + ' + Me.ucrReceiverRank.AutoSize = True + Me.ucrReceiverRank.frmParent = Nothing + Me.ucrReceiverRank.Location = New System.Drawing.Point(246, 48) + Me.ucrReceiverRank.Margin = New System.Windows.Forms.Padding(0) + Me.ucrReceiverRank.Name = "ucrReceiverRank" + Me.ucrReceiverRank.Selector = Nothing + Me.ucrReceiverRank.Size = New System.Drawing.Size(145, 20) + Me.ucrReceiverRank.strNcFilePath = "" + Me.ucrReceiverRank.TabIndex = 11 + Me.ucrReceiverRank.ucrSelector = Nothing + ' + 'ucrSelectorForRank + ' + Me.ucrSelectorForRank.AutoSize = True + Me.ucrSelectorForRank.bDropUnusedFilterLevels = False + Me.ucrSelectorForRank.bShowHiddenColumns = False + Me.ucrSelectorForRank.bUseCurrentFilter = True + Me.ucrSelectorForRank.Location = New System.Drawing.Point(12, 16) + Me.ucrSelectorForRank.Margin = New System.Windows.Forms.Padding(0) + Me.ucrSelectorForRank.Name = "ucrSelectorForRank" + Me.ucrSelectorForRank.Size = New System.Drawing.Size(318, 274) + Me.ucrSelectorForRank.TabIndex = 9 + ' + 'lblPreview + ' + Me.lblPreview.AutoSize = True + Me.lblPreview.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.lblPreview.Location = New System.Drawing.Point(9, 314) + Me.lblPreview.Name = "lblPreview" + Me.lblPreview.Size = New System.Drawing.Size(48, 13) + Me.lblPreview.TabIndex = 30 + Me.lblPreview.Text = "Preview:" + ' + 'txtScript + ' + Me.txtScript.Location = New System.Drawing.Point(5, 332) + Me.txtScript.Multiline = True + Me.txtScript.Name = "txtScript" + Me.txtScript.ScrollBars = System.Windows.Forms.ScrollBars.Both + Me.txtScript.Size = New System.Drawing.Size(445, 96) + Me.txtScript.TabIndex = 32 + ' 'ucrBase ' Me.ucrBase.AutoSize = True Me.ucrBase.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrBase.Location = New System.Drawing.Point(6, 399) + Me.ucrBase.Location = New System.Drawing.Point(6, 431) Me.ucrBase.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.ucrBase.Name = "ucrBase" Me.ucrBase.Size = New System.Drawing.Size(408, 52) @@ -917,7 +1109,7 @@ Partial Class dlgScript Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi Me.AutoSize = True - Me.ClientSize = New System.Drawing.Size(458, 458) + Me.ClientSize = New System.Drawing.Size(458, 467) Me.Controls.Add(Me.txtScript) Me.Controls.Add(Me.lblPreview) Me.Controls.Add(Me.tbFeatures) @@ -937,6 +1129,8 @@ Partial Class dlgScript Me.tbPageCommand.PerformLayout() Me.tbPageExamples.ResumeLayout(False) Me.tbPageExamples.PerformLayout() + Me.tbPageRepeat.ResumeLayout(False) + Me.tbPageRepeat.PerformLayout() Me.ResumeLayout(False) Me.PerformLayout() @@ -1009,4 +1203,18 @@ Partial Class dlgScript Friend WithEvents rdoFromRFile As RadioButton Friend WithEvents rdoDataFrame As RadioButton Friend WithEvents ucrPnlSaveDataFrame As UcrPanel + Friend WithEvents lblSaveText As Label + Friend WithEvents lblSaveDataFrame As Label + Friend WithEvents lblSaveColumn As Label + Friend WithEvents ucrInputDataframeColumn As ucrInputTextBox + Friend WithEvents ucrInputSaveColumn As ucrInputTextBox + Friend WithEvents rdoVariable As RadioButton + Friend WithEvents tbPageRepeat As TabPage + Friend WithEvents lblSelectColumns As Label + Friend WithEvents ucrReceiverRank As ucrReceiverSingle + Friend WithEvents ucrSelectorForRank As ucrSelectorByDataFrameAddRemove + Friend WithEvents ucrReceiverForCalculation As ucrReceiverExpression + Friend WithEvents lblExpression As Label + Friend WithEvents lblColumns As Label + Friend WithEvents ucrReceiverColumns As ucrReceiverSingle End Class diff --git a/instat/dlgScript.vb b/instat/dlgScript.vb index 7ca7d373b6e..8604fd5f5c0 100644 --- a/instat/dlgScript.vb +++ b/instat/dlgScript.vb @@ -20,7 +20,7 @@ Public Class dlgScript Private strComment As String = "Code generated by the dialog, Script" Private bFirstload As Boolean = True Private clsSaveDataFunction As New RFunction - Private clsGetRObjectFunction As New RFunction + Private clsGetRObjectFunction, clsGetSelectedDataFrameFunction As New RFunction Private dctOutputObjectTypes As New Dictionary(Of String, String) Private dctOutputObjectFormats As New Dictionary(Of String, String) @@ -78,6 +78,7 @@ Public Class dlgScript ucrPnlSaveDataFrame.AddRadioButton(rdoDataFrame) ucrPnlSaveDataFrame.AddRadioButton(rdoFromRFile) + ucrPnlSaveDataFrame.AddRadioButton(rdoVariable) ucrChkSaveDataFrameSingle.SetText("Single") @@ -95,6 +96,8 @@ Public Class dlgScript ucrReceiverGetColumns.Selector = ucrSelectorGetObject ucrReceiverGetColumns.SetLinkedDisplayControl(lblGetColumn) + ucrReceiverColumns.Selector = ucrSelectorForRank + ucrCboGetOutputObjectType.SetItems(dctOutputObjectTypes, bSetConditions:=False) ucrCboGetOutputObjectType.SetDropDownStyleAsNonEditable() ucrCboGetOutputObjectType.SetLinkedDisplayControl(lblGetObjectType) @@ -151,6 +154,15 @@ Public Class dlgScript ucrBase.bAddScriptToScriptWindowOnClickOk = False ucrBase.bMakeVisibleScriptWindow = False + ucrReceiverRank.SetParameter(New RParameter("x", 0)) + ucrReceiverRank.Selector = ucrSelectorForRank + ucrReceiverRank.SetMeAsReceiver() + ucrReceiverRank.bUseFilteredData = False + ucrReceiverRank.SetParameterIsRFunction() + + ucrSelectorForRank.SetItemType("column_selection") + ucrReceiverRank.strSelectorHeading = "Column selections" + End Sub 'todo. this function should eventually be removed once we have a control that displays packages @@ -196,7 +208,8 @@ Public Class dlgScript ucrDataFrameGetDF.Reset() rdoGetDataFrame.Checked = True rdoDataFrame.Checked = True - + ucrSelectorForRank.Reset() + ucrReceiverForCalculation.Clear() 'activate the selected tab to library tab tbFeatures.SelectedIndex = -1 tbFeatures.SelectedTab = tbPageSaveData @@ -675,12 +688,28 @@ Public Class dlgScript End Sub Private Sub PreviewScript(strNewScript As String) - txtScript.Text = strNewScript & Environment.NewLine + txtScript.Text = GetFormattedScript(strNewScript & Environment.NewLine) txtScript.SelectionStart = txtScript.Text.Length txtScript.ScrollToCaret() txtScript.Refresh() End Sub + Private Function GetFormattedScript(strScript As String) As String + Dim strReconstructedstrScript As String = "" + Dim arrCommentParts As String() + If strScript.Length > 0 Then + arrCommentParts = strScript.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries) + For Each strPart As String In arrCommentParts + If strReconstructedstrScript = "" Then + strReconstructedstrScript = strPart + Else + strReconstructedstrScript = strReconstructedstrScript & Environment.NewLine & strPart + End If + Next + End If + Return strReconstructedstrScript + End Function + Private Sub ucrInputChooseFile_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputChooseFile.ControlContentsChanged, ucrChkOpenRFile.ControlContentsChanged UpdateScript() ucrInputChooseFile.Visible = ucrChkOpenRFile.Checked @@ -761,6 +790,11 @@ Public Class dlgScript Private Sub HideShowSaveDataFrameControls() ucrInputSaveRFile.SetVisible(False) ucrInputSaveDataFrame.SetVisible(False) + ucrInputSaveColumn.SetVisible(False) + ucrInputDataframeColumn.SetVisible(False) + lblSaveColumn.Visible = False + lblSaveDataFrame.Visible = False + lblSaveText.Visible = False ucrChkSaveDataFrameSingle.SetVisible(False) If rdoDataFrame.Checked Then ucrInputSaveDataFrame.SetVisible(True) @@ -770,7 +804,95 @@ Public Class dlgScript ElseIf rdoFromRFile.Checked Then ucrInputSaveRFile.SetVisible(True) ucrInputSaveRFile.OnControlValueChanged() + ElseIf rdoVariable.Checked Then + ucrInputSaveColumn.SetVisible(True) + ucrInputDataframeColumn.SetVisible(True) + lblSaveText.Visible = True + lblSaveColumn.Visible = True + lblSaveDataFrame.Visible = True + ucrChkSaveDataFrameSingle.SetVisible(True) + ucrInputSaveDataFrame.OnControlValueChanged() End If End Sub + Private Sub ucrInputDataframeColumn_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrInputDataframeColumn.ControlContentsChanged, ucrInputSaveColumn.ControlContentsChanged, + ucrChkSaveDataFrameSingle.ControlContentsChanged + Dim strScript As String = "" + + If rdoVariable.Checked Then + If Not ucrInputDataframeColumn.IsEmpty() AndAlso Not ucrInputSaveColumn.IsEmpty Then + Dim clsDataFrameFunction As New RFunction + Dim clsImportRFunction As New RFunction + Dim strColumneName As String = ucrInputSaveColumn.GetText() + Dim strDataFrameName As String = ucrInputDataframeColumn.GetText() + + clsImportRFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$import_data") + clsDataFrameFunction.SetRCommand("data.frame") + + Dim strAssignedScript As String = "" + clsDataFrameFunction.AddParameter("dataframe", ucrInputSaveColumn.GetText(), bIncludeArgumentName:=False) + clsDataFrameFunction.SetAssignTo(ucrInputDataframeColumn.GetText) + clsDataFrameFunction.ToScript(strScript:=strAssignedScript) + + If ucrChkSaveDataFrameSingle.Checked Then + ' If it's a single data frame then wrap it into a list + Dim clsDataListRFunction As New RFunction + clsDataListRFunction.SetRCommand("list") + clsDataListRFunction.AddParameter(strParameterName:=strDataFrameName, strParameterValue:=strDataFrameName) + clsImportRFunction.AddParameter(strParameterName:="data_tables", clsRFunctionParameter:=clsDataListRFunction) + Else + ' If it's already a list of data frames, then add the name directly + clsImportRFunction.AddParameter(strParameterName:="data_tables", strParameterValue:=strDataFrameName) + End If + + strScript = "# Save variables " & """" & strColumneName & """" & " into data frame " & """" & strDataFrameName & """" & Environment.NewLine & strAssignedScript & clsImportRFunction.ToScript() + + End If + End If + PreviewScript(strScript) + End Sub + + Private Function ConstructScript(strSelectedScript As String, strVariable As String, strDataFrame As String) As String + + ' Extract the LHS variable + Dim match As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(strSelectedScript, "(\S+)\s*<-\s*(.*)") + Dim lhsVariable As String = If(match.Success, match.Groups(1).Value, "calc") ' Default to "calc" if no match + Dim rhs As String = If(match.Success, match.Groups(2).Value, strSelectedScript) + + ' Modify RHS with the selected variable + Dim modifiedRhs As String = If(Not String.IsNullOrEmpty(strVariable), rhs.Replace(strVariable, $"{strDataFrame}[[.x]]"), rhs) + + ' Construct the main script using string interpolation + Dim strConstructedScript As String = $" + {lhsVariable} <- purrr::map(.x = {"names(" & lhsVariable & ")"}, + .f = ~{modifiedRhs}) %>% + dplyr::bind_cols(.)" + Dim strAssignedScript As String = "" + + ' Get the selected data frame columns + Dim clsGetSelectedDataFrameFunction As New RFunction + clsGetSelectedDataFrameFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$get_data_frame") + clsGetSelectedDataFrameFunction.AddParameter("data_name", Chr(34) & ucrSelectorForRank.strCurrentDataFrame & Chr(34), iPosition:=0, bIncludeArgumentName:=False) + clsGetSelectedDataFrameFunction.AddParameter("column_selection_name ", ucrReceiverRank.GetVariableNames, iPosition:=1) + clsGetSelectedDataFrameFunction.SetAssignTo(lhsVariable) + clsGetSelectedDataFrameFunction.ToScript(strScript:=strAssignedScript) + + ' Prepend the dataframe selection script + strConstructedScript = "#Get the variables in the chosen select." & Environment.NewLine & "# Then do the calculation for each variable in turn, " & Environment.NewLine & "# So produce a new column for each variable in the select." & Environment.NewLine & strAssignedScript & Environment.NewLine & strConstructedScript.Trim() + + Return strConstructedScript + End Function + + Private Sub ucrReceiverForCalculation_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverForCalculation.ControlValueChanged + PreviewScript(ConstructScript(ucrReceiverForCalculation.GetVariableNames(False), ucrReceiverColumns.GetVariableNames(False), ucrSelectorForRank.strCurrentDataFrame)) + End Sub + + Private Sub ucrReceiverColumns_Enter(sender As Object, e As EventArgs) Handles ucrReceiverColumns.Enter + ucrReceiverColumns.SetItemType("column") + End Sub + + Private Sub ucrReceiverRank_Enter(sender As Object, e As EventArgs) Handles ucrReceiverRank.Enter + ucrSelectorForRank.SetItemType("column_selection") + End Sub + End Class \ No newline at end of file diff --git a/instat/dlgSelect.vb b/instat/dlgSelect.vb index 2bc3630c75e..9d9d2acc09f 100644 --- a/instat/dlgSelect.vb +++ b/instat/dlgSelect.vb @@ -137,6 +137,12 @@ Public Class dlgSelect End Sub Private Sub cmdDefineNewSelect_Click(sender As Object, e As EventArgs) Handles cmdDefineNewSelect.Click + If frmMain.IsColumnSelectionApplied Then + Dim clsRemoveCurrentSelection As New RFunction + clsRemoveCurrentSelection.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$remove_current_column_selection") + clsRemoveCurrentSelection.AddParameter("data_name", Chr(34) & ucrSelectorForSelectColumns.strCurrentDataFrame & Chr(34)) + frmMain.clsRLink.RunScript(clsRemoveCurrentSelection.ToScript, strComment:="Remove current selection") + End If dlgSelectColumns.SetDefaultDataFrame(ucrSelectorForSelectColumns.ucrAvailableDataFrames.strCurrDataFrame) dlgSelectColumns.ShowDialog() ucrSelectorForSelectColumns.LoadList() diff --git a/instat/dlgSpells.vb b/instat/dlgSpells.vb index d8db2c82eab..81b979c7045 100644 --- a/instat/dlgSpells.vb +++ b/instat/dlgSpells.vb @@ -18,7 +18,7 @@ Imports instat.Translations Public Class dlgSpells Private bFirstload As Boolean = True Private bReset As Boolean = True - Private clsSpellLength, clsMaxSpellManipulation, clsSubSpellLength1 As New RFunction + Private clsSpellLength, clsMaxSpellManipulation, clsIfElseFirstDoyFilledFunction, clsSubSpellLength1 As New RFunction Private clsMaxSpellSummary, clsMaxValueList, clsMaxFunction, clsMaxSpellSubCalcs As New RFunction Private clsDayFilter, clsGroupBy, clsGroupByStation, clsDayFilterCalcFromConvert, clsDayFilterCalcFromList As New RFunction Private clsDayFromAndToOperator, clsDayFromOperator, clsDayToOperator As New ROperator @@ -135,6 +135,7 @@ Public Class dlgSpells clsRSpellFilterSubFunct = New RFunction clsSpellFilterFunction = New RFunction clsDotSpellsFunction = New RFunction + clsIfElseFirstDoyFilledFunction = New RFunction Dim strSpellLogical As String = "spell_day" Dim strSpellName As String = "spell_length" @@ -348,7 +349,7 @@ Public Class dlgSpells End Sub Private Sub cmdDoyRange_Click(sender As Object, e As EventArgs) Handles cmdDoyRange.Click - sdgDoyRange.Setup(clsNewDoyFilterCalc:=clsDayFilter, clsNewDayFromOperator:=clsDayFromOperator, clsNewDayToOperator:=clsDayToOperator, clsNewCalcFromList:=clsDayFilterCalcFromList, strNewMainDataFrame:=ucrSelectorForSpells.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strNewDoyColumn:=ucrReceiverDOY.GetVariableNames(False)) + sdgDoyRange.Setup(clsNewDoyFilterCalc:=clsDayFilter, clsNewIfElseFirstDoyFilledFunction:=clsIfElseFirstDoyFilledFunction, clsNewDayFromOperator:=clsDayFromOperator, clsNewDayToOperator:=clsDayToOperator, clsNewCalcFromList:=clsDayFilterCalcFromList, strNewMainDataFrame:=ucrSelectorForSpells.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strNewDoyColumn:=ucrReceiverDOY.GetVariableNames(False)) sdgDoyRange.ShowDialog() UpdateDayFilterPreview() End Sub diff --git a/instat/dlgStack.vb b/instat/dlgStack.vb index 0fd8973dba3..e52428347c6 100644 --- a/instat/dlgStack.vb +++ b/instat/dlgStack.vb @@ -125,8 +125,8 @@ Public Class dlgStack ucrPnlCarryColumns.AddRadioButton(rdoCarryAllColumns) ucrPnlCarryColumns.AddRadioButton(rdoCarryColumns) - ucrPnlCarryColumns.AddParameterIsRFunctionCondition(rdoCarryAllColumns, "data") - ucrPnlCarryColumns.AddParameterIsROperatorCondition(rdoCarryColumns, "%>%") + ucrPnlCarryColumns.AddParameterValuesCondition(rdoCarryAllColumns, "checked", "all_columns") + ucrPnlCarryColumns.AddParameterValuesCondition(rdoCarryColumns, "checked", "columns") ucrInputValuesTo.SetParameter(New RParameter(" values_to", 4)) ucrInputValuesTo.SetRDefault(Chr(34) & "value" & Chr(34)) @@ -237,6 +237,7 @@ Public Class dlgStack ucrReceiverColumnsToBeStack.SetMeAsReceiver() clsDummyFunction.AddParameter("drop", "False", iPosition:=0) + clsDummyFunction.AddParameter("checked", "all_columns", iPosition:=1) clsPivotLongerFunction.SetRCommand("pivot_longer") clsPivotLongerFunction.SetPackageName("tidyr") @@ -300,7 +301,6 @@ Public Class dlgStack ucrChkDropMissingValues.SetRCode(clsPivotLongerFunction, bReset) ucrInputValuesTo.SetRCode(clsPivotLongerFunction, bReset) ucrPnlStack.SetRCode(ucrBase.clsRsyntax.clsBaseFunction, bReset) - ucrPnlCarryColumns.SetRCode(clsPivotLongerFunction, bReset) ucrInputDropPrefix.SetRCode(clsPivotLongerFunction, bReset) ucrChkDropPrefix.SetRCode(clsPivotLongerFunction, bReset) ucrFactorInto.SetRCode(clsReshapeFunction, bReset) @@ -309,6 +309,7 @@ Public Class dlgStack ucrReceiverDropValues.SetRCode(clsReshapeFunction, bReset) ucrChkDropVariables.SetRCode(clsDummyFunction, bReset) ucrReceiverColumnsToBeStack.SetRCode(clsPivotLongerFunction, bReset) + ucrPnlCarryColumns.SetRCode(clsDummyFunction, bReset) End If End Sub diff --git a/instat/dlgStartofRains.vb b/instat/dlgStartofRains.vb index ca242b4e7c5..a64ddd626b0 100644 --- a/instat/dlgStartofRains.vb +++ b/instat/dlgStartofRains.vb @@ -18,12 +18,12 @@ Imports instat.Translations Public Class dlgStartofRains Private bResetSubdialog As Boolean = True - Private clsCalcRainDay, clsCalcStartDOY, clsVectorFunction, clsGetlinkeddataFunction, clsGetDataFrameFunction, clsListevapFunction, clsRollEvaporationFunction, clsFractionEvapFunction, clsSumEvapFunction, clsConvertColumnType1Function, clsConvertColumnType2Function, clsConvertColumnTypeFunction, clsGetColumnDataTypeFunction, clsDummyFunction, clsIfelseStatusFunction, clsIfelseStatus1Function, clsFirstStatusFunction, clsIsNAStatusFunction, clsCalcStartDate, clsCombinationCalc, clsListCalFunction, clsCombinationManipList, clsCombinationSubCalcList, clsListSubCalc, clsManipulationFirstDOYPerYear, clsConditionsFilter, clsCombinedList As New RFunction + Private clsCalcRainDay, clsCalcStartDOY, clsConvertssndLinkedVariableFunction, clsDeleteunusedrowFunction, clsRunStartStatus2Function, clsStartRainCombine2Function, clsListFunction, clsNastatus2Function, clsIfElseStatus2Function, clsStatRainStatus2Function, clsSetnameRainStatusFunction, clsSetnameRainFunction, clsCalculatedListformFunction, clsConvertLinkedvariablesvectorFunction, clsConvertLinkedVariablesFunction, clsStationTypeFunction, clsConvertStationtypeFunction, clsVectorFunction, clsGetlinkeddataFunction, clsGetDataFrameFunction, clsListevapFunction, clsRollEvaporationFunction, clsFractionEvapFunction, clsSumEvapFunction, clsConvertColumnType1Function, clsConvertColumnType2Function, clsConvertColumnTypeFunction, clsGetColumnDataTypeFunction, clsDummyFunction, clsIfelseStatusFunction, clsIfelseStatus1Function, clsFirstStatusFunction, clsIsNAStatusFunction, clsCalcStartDate, clsCombinationCalc, clsListCalFunction, clsCombinationManipList, clsCombinationSubCalcList, clsListSubCalc, clsManipulationFirstDOYPerYear, clsConditionsFilter, clsCombinedList As New RFunction Private clsDayFromAndTo, clsGroupByStation, clsGroupByYear, clsListToTalRain, clsApplyInstatFunction, clsFirstDOY, clsFirstDate As New RFunction Private clsDayFromAndToOperator, clsEvapOperator, clsDayFromOperator, clsDayToOperator, clsRainDayOperator, clsRainDayConditionOperator, clsConditionsAndOperator, clsTRCombineOperator, clsRollingSumRainDayOperator, clsDSCombineOperator, clsDPCombineOperator As New ROperator Private clsDayFilterCalcFromConvert, clsDayFilterCalcFromList As New RFunction - Private clsSpellsFunction As New RFunction + Private clsSpellsFunction, clsIfElseFirstDoyFilledFunction As New RFunction Private clsRainDaySpellsOperator As New ROperator Private clsConditionsOrOverallOperator As New ROperator @@ -238,6 +238,10 @@ Public Class dlgStartofRains Dim strStartDoy As String = "start_rain" Dim strRollSumRainDryPeriod As String = "roll_sum_rain_dry_period" Dim strYearType As String = "year_type" + Dim strStationType As String = "station_type" + Dim strcalculatedfromlist As String = "calculated_from_list" + Dim strStartStatus2 As String = "start_rain_status2" + Dim strstartraincombinedstatus2 As String = "start_rain_combined_status_2" clsRainRollingSumFunction = New RFunction clsGetlinkeddataFunction = New RFunction @@ -246,6 +250,13 @@ Public Class dlgStartofRains clsDayFilterCalcFromConvert = New RFunction clsDayFilterCalcFromList = New RFunction clsDummyFunction = New RFunction + clsIfElseFirstDoyFilledFunction = New RFunction + clsConvertLinkedvariablesvectorFunction = New RFunction + clsSetnameRainStatusFunction = New RFunction + clsSetnameRainFunction = New RFunction + clsIfElseStatus2Function = New RFunction + clsNastatus2Function = New RFunction + clsListFunction = New RFunction clsDayFromAndTo.Clear() clsDayFromAndToOperator.Clear() @@ -275,6 +286,15 @@ Public Class dlgStartofRains clsEvapOperator.Clear() clsRollEvaporationFunction.Clear() clsListevapFunction.Clear() + clsStationTypeFunction.Clear() + clsConvertStationtypeFunction.Clear() + clsConvertLinkedVariablesFunction.Clear() + clsCalculatedListformFunction.Clear() + clsStatRainStatus2Function.Clear() + clsStartRainCombine2Function.Clear() + clsRunStartStatus2Function.Clear() + clsConvertssndLinkedVariableFunction.Clear() + clsDeleteunusedrowFunction.Clear() clsSpellsFunction.Clear() clsRainDaySpellsOperator.Clear() @@ -390,7 +410,7 @@ Public Class dlgStartofRains clsConvertColumnType1Function.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_column_to_type") clsConvertColumnType1Function.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) - clsConvertColumnType1Function.AddParameter("to_type", "year_type", iPosition:=2) + clsConvertColumnType1Function.AddParameter("to_type", strYearType, iPosition:=2) 'TOTAL RAIN: associated with ucrChkTotalRainfall clsCalcRainRollingSum.SetRCommand("instat_calculation$new") @@ -768,8 +788,8 @@ Public Class dlgStartofRains clsVectorFunction.SetRCommand("c") clsConvertColumnType2Function.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_column_to_type") - clsConvertColumnType2Function.AddParameter("data_name", "linked_data_name", iPosition:=0) - clsConvertColumnType2Function.AddParameter("to_type", "year_type", iPosition:=2) + clsConvertColumnType2Function.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertColumnType2Function.AddParameter("to_type", strStationType, iPosition:=2) 'Run Calculations clsListCalFunction.SetRCommand("list") @@ -780,17 +800,82 @@ Public Class dlgStartofRains clsApplyInstatFunction.AddParameter("calc", clsRFunctionParameter:=clsCombinationCalc, iPosition:=0) clsApplyInstatFunction.AddParameter("param_list", clsRFunctionParameter:=clsListCalFunction, iPosition:=2) + clsStationTypeFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$get_column_data_types") + clsStationTypeFunction.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsStationTypeFunction.SetAssignTo(strStationType) + + clsConvertStationtypeFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_column_to_type") + clsConvertStationtypeFunction.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertStationtypeFunction.AddParameter("to_type", Chr(34) & "factor" & Chr(34), iPosition:=2) + + clsConvertLinkedVariablesFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_linked_variable") + clsConvertLinkedVariablesFunction.AddParameter("from_data_frame", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertLinkedVariablesFunction.AddParameter("link_cols", clsRFunctionParameter:=clsConvertLinkedvariablesvectorFunction, iPosition:=2) + + clsConvertLinkedvariablesvectorFunction.SetRCommand("c") + + clsCalculatedListformFunction.SetRCommand("c") + clsCalculatedListformFunction.AddParameter("x", clsRFunctionParameter:=clsSetnameRainStatusFunction, iPosition:=0, bIncludeArgumentName:=False) + clsCalculatedListformFunction.AddParameter("y", clsRFunctionParameter:=clsSetNameRainFunction, iPosition:=1, bIncludeArgumentName:=False) + clsCalculatedListformFunction.SetAssignTo(strcalculatedfromlist) + + clsSetnameRainStatusFunction.SetRCommand("setNames") + clsSetnameRainStatusFunction.AddParameter("x", Chr(34) & strStartStatus & Chr(34), iPosition:=0, bIncludeArgumentName:=False) + clsSetnameRainStatusFunction.AddParameter("y", "linked_data_name", iPosition:=1, bIncludeArgumentName:=False) + + clsSetnameRainFunction.SetRCommand("setNames") + clsSetnameRainFunction.AddParameter("x", Chr(34) & strStartDoy & Chr(34), iPosition:=0, bIncludeArgumentName:=False) + clsSetnameRainFunction.AddParameter("y", "linked_data_name", iPosition:=1, bIncludeArgumentName:=False) + + clsStatRainStatus2Function.SetRCommand("instat_calculation$new") + clsStatRainStatus2Function.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + clsStatRainStatus2Function.AddParameter("function_exp", clsRFunctionParameter:=clsIfElseStatus2Function, iPosition:=1) + clsStatRainStatus2Function.AddParameter("calculated_from", strcalculatedfromlist, iPosition:=2) + clsStatRainStatus2Function.AddParameter("result_name", Chr(34) & "start_rain_status" & Chr(34), iPosition:=3) + clsStatRainStatus2Function.AddParameter("save", "2", iPosition:=4) + clsStatRainStatus2Function.SetAssignTo(strStartStatus2) + clsIfElseStatus2Function.SetRCommand("ifelse") + clsIfElseStatus2Function.bToScriptAsRString = True + clsIfElseStatus2Function.AddParameter("test", clsRFunctionParameter:=clsNastatus2Function, iPosition:=0, bIncludeArgumentName:=False) + clsIfElseStatus2Function.AddParameter("yes", "TRUE", iPosition:=1, bIncludeArgumentName:=False) + clsIfElseStatus2Function.AddParameter("no", strStartStatus, iPosition:=2, bIncludeArgumentName:=False) + + clsNastatus2Function.SetRCommand("!is.na") + clsNastatus2Function.AddParameter("x", strStartDoy, iPosition:=0, bIncludeArgumentName:=False) + + clsStartRainCombine2Function.SetRCommand("instat_calculation$new") + clsStartRainCombine2Function.AddParameter("type", Chr(34) & "combination" & Chr(34), iPosition:=0) + clsStartRainCombine2Function.AddParameter("sub_calculations", clsRFunctionParameter:=clsListFunction, iPosition:=1) + clsStartRainCombine2Function.SetAssignTo(strstartraincombinedstatus2) + + clsListFunction.SetRCommand("list") + clsListFunction.AddParameter("x", strStartStatus2, iPosition:=0, bIncludeArgumentName:=False) + + clsRunStartStatus2Function.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$run_instat_calculation") + clsRunStartStatus2Function.AddParameter("calc", strstartraincombinedstatus2, iPosition:=0) + clsRunStartStatus2Function.AddParameter("display", "FALSE", iPosition:=1) + clsRunStartStatus2Function.AddParameter("param_list", clsRFunctionParameter:=clsListCalFunction, iPosition:=2) + + clsConvertssndLinkedVariableFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$convert_linked_variable") + clsConvertssndLinkedVariableFunction.AddParameter("from_data_frame", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertssndLinkedVariableFunction.AddParameter("link_cols", clsRFunctionParameter:=clsConvertLinkedvariablesvectorFunction, iPosition:=1) + + clsDeleteunusedrowFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$remove_unused_station_year_combinations") + clsDeleteunusedrowFunction.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + ucrBase.clsRsyntax.ClearCodes() ucrBase.clsRsyntax.SetBaseRFunction(clsApplyInstatFunction) ucrBase.clsRsyntax.AddToBeforeCodes(clsGetColumnDataTypeFunction, iPosition:=0) ucrBase.clsRsyntax.AddToBeforeCodes(clsConvertColumnTypeFunction, iPosition:=1) - ucrBase.clsRsyntax.AddToAfterCodes(clsGetlinkeddataFunction, iPosition:=0) - ucrBase.clsRsyntax.AddToAfterCodes(clsConvertColumnType1Function, iPosition:=1) - ucrBase.clsRsyntax.AddToAfterCodes(clsConvertColumnType2Function, iPosition:=2) + ucrBase.clsRsyntax.AddToBeforeCodes(clsConvertLinkedVariablesFunction, iPosition:=4) + ucrBase.clsRsyntax.AddToAfterCodes(clsConvertColumnType1Function, iPosition:=5) + ucrBase.clsRsyntax.AddToAfterCodes(clsConvertssndLinkedVariableFunction, iPosition:=8) SetReceiver() ChangeDSValue() AdditionalCondition() + GroupByStationOptions() + AddRemoveStartStatus() End Sub Private Sub SetRCodeForControls(bReset As Boolean) @@ -807,10 +892,10 @@ Public Class dlgStartofRains ucrNudTROverDays.AddAdditionalCodeParameterPair(clsRollEvaporationFunction, New RParameter("n", 1), iAdditionalPairNo:=1) ucrReceiverDOY.SetRCode(clsDayToOperator, bReset) - ucrChkAsDoy.SetRCode(clsCombinationSubCalcList, bReset) - ucrChkStatus.SetRCode(clsDummyFunction, bReset) - ucrChkAsDate.SetRCode(clsDummyFunction, bReset) If bReset Then + ucrChkAsDoy.SetRCode(clsCombinationSubCalcList, bReset) + ucrChkStatus.SetRCode(clsDummyFunction, bReset) + ucrChkAsDate.SetRCode(clsDummyFunction, bReset) ucrChkAdditional.SetRCode(clsDummyFunction, bReset) End If ucrInputThreshold.SetRCode(clsRainDayOperator, bReset) @@ -865,7 +950,7 @@ Public Class dlgStartofRains End Sub Private Sub cmdDoyRange_Click(sender As Object, e As EventArgs) Handles cmdDoyRange.Click - sdgDoyRange.Setup(clsNewDoyFilterCalc:=clsDayFromAndTo, clsNewDayFromOperator:=clsDayFromOperator, clsNewDayToOperator:=clsDayToOperator, clsNewCalcFromList:=clsDayFilterCalcFromList, strNewMainDataFrame:=ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strNewDoyColumn:=ucrReceiverDOY.GetVariableNames(False)) + sdgDoyRange.Setup(clsNewDoyFilterCalc:=clsDayFromAndTo, clsNewIfElseFirstDoyFilledFunction:=clsIfElseFirstDoyFilledFunction, clsNewDayFromOperator:=clsDayFromOperator, clsNewDayToOperator:=clsDayToOperator, clsNewCalcFromList:=clsDayFilterCalcFromList, strNewMainDataFrame:=ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strNewDoyColumn:=ucrReceiverDOY.GetVariableNames(False)) sdgDoyRange.ShowDialog() UpdateDayFilterPreview() End Sub @@ -927,15 +1012,31 @@ Public Class dlgStartofRains Private Sub GroupByStationOptions() If Not ucrReceiverStation.IsEmpty Then + clsDeleteunusedrowFunction.AddParameter("station", ucrReceiverStation.GetVariableNames(), iPosition:=2) clsCombinationManipList.AddParameter("manip1", clsRFunctionParameter:=clsGroupByStation, bIncludeArgumentName:=False, iPosition:=0) clsListToTalRain.AddParameter("manip1", clsRFunctionParameter:=clsGroupByStation, bIncludeArgumentName:=False) clsCalcRainRollingSum.AddParameter("manipulations", clsRFunctionParameter:=clsListToTalRain, iPosition:=4) clsGroupByStation.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverStation.GetVariableNames & ")", iPosition:=3) + clsConvertStationtypeFunction.AddParameter("col_names", ucrReceiverStation.GetVariableNames(), iPosition:=1) + clsConvertLinkedvariablesvectorFunction.AddParameter("y", ucrReceiverStation.GetVariableNames(), iPosition:=1, bIncludeArgumentName:=False) + clsStationTypeFunction.AddParameter("columns", ucrReceiverStation.GetVariableNames(), iPosition:=1) + clsConvertColumnType2Function.AddParameter("col_names", ucrReceiverStation.GetVariableNames(), iPosition:=1) + ucrBase.clsRsyntax.AddToBeforeCodes(clsStationTypeFunction, iPosition:=2) + ucrBase.clsRsyntax.AddToBeforeCodes(clsConvertStationtypeFunction, iPosition:=3) + ucrBase.clsRsyntax.AddToAfterCodes(clsDeleteunusedrowFunction, iPosition:=7) Else + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsDeleteunusedrowFunction) + ucrBase.clsRsyntax.RemoveFromBeforeCodes(clsStationTypeFunction) + ucrBase.clsRsyntax.RemoveFromBeforeCodes(clsConvertStationtypeFunction) + clsDeleteunusedrowFunction.RemoveParameterByName("station") + clsConvertStationtypeFunction.RemoveParameterByName("col_names") clsCombinationManipList.RemoveParameterByName("manip1") clsListToTalRain.RemoveParameterByName("manip1") clsCalcRainRollingSum.RemoveParameterByName("manipulations") clsGroupByStation.RemoveParameterByName("calculated_from") + clsConvertLinkedvariablesvectorFunction.RemoveParameterByName("y") + clsStationTypeFunction.RemoveParameterByName("columns") + clsConvertColumnType2Function.RemoveParameterByName("col_names") End If End Sub @@ -944,14 +1045,16 @@ Public Class dlgStartofRains clsGetColumnDataTypeFunction.AddParameter("columns", ucrReceiverYear.GetVariableNames(), iPosition:=1) clsConvertColumnTypeFunction.AddParameter("col_names", ucrReceiverYear.GetVariableNames(), iPosition:=1) clsConvertColumnType1Function.AddParameter("col_names", ucrReceiverYear.GetVariableNames(), iPosition:=1) - clsConvertColumnType2Function.AddParameter("col_names", ucrReceiverYear.GetVariableNames(), iPosition:=1) + clsDeleteunusedrowFunction.AddParameter("year", ucrReceiverYear.GetVariableNames(), iPosition:=1) clsGroupByYear.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverYear.GetVariableNames & ")", iPosition:=3) + clsConvertLinkedvariablesvectorFunction.AddParameter("x", ucrReceiverYear.GetVariableNames(), iPosition:=0, bIncludeArgumentName:=False) Else + clsDeleteunusedrowFunction.RemoveParameterByName("year") clsGroupByYear.RemoveParameterByName("calculated_from") clsGetColumnDataTypeFunction.RemoveParameterByName("columns") clsConvertColumnTypeFunction.RemoveParameterByName("col_names") clsConvertColumnType1Function.RemoveParameterByName("col_names") - clsConvertColumnType2Function.RemoveParameterByName("col_names") + clsConvertLinkedvariablesvectorFunction.RemoveParameterByName("x") End If End Sub @@ -1024,6 +1127,13 @@ Public Class dlgStartofRains clsConvertColumnTypeFunction.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) clsConvertColumnType1Function.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) clsGetlinkeddataFunction.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0, bIncludeArgumentName:=False) + clsStationTypeFunction.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertStationtypeFunction.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertLinkedVariablesFunction.AddParameter("from_data_frame", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertssndLinkedVariableFunction.AddParameter("from_data_frame", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsDeleteunusedrowFunction.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsConvertColumnType2Function.AddParameter("data_name", Chr(34) & ucrSelectorForStartofRains.ucrAvailableDataFrames.cboAvailableDataFrames.Text & Chr(34), iPosition:=0) + clsDayFilterCalcFromList.ClearParameters() End Sub @@ -1056,7 +1166,24 @@ Public Class dlgStartofRains clsSORStatusSummary.clsSORFilterOperator.AddParameter("left", strParameterValue:=ucrInputNewDoyColumnName.GetText, bIncludeArgumentName:=False, iPosition:=0) End Sub + Private Sub AddRemoveStartStatus() + If ucrChkStatus.Checked Then + ucrBase.clsRsyntax.AddToAfterCodes(clsGetlinkeddataFunction, iPosition:=0) + ucrBase.clsRsyntax.AddToAfterCodes(clsCalculatedListformFunction, iPosition:=1) + ucrBase.clsRsyntax.AddToAfterCodes(clsStatRainStatus2Function, iPosition:=2) + ucrBase.clsRsyntax.AddToAfterCodes(clsStartRainCombine2Function, iPosition:=3) + ucrBase.clsRsyntax.AddToAfterCodes(clsRunStartStatus2Function, iPosition:=4) + Else + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsGetlinkeddataFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsCalculatedListformFunction) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsStatRainStatus2Function) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsStartRainCombine2Function) + ucrBase.clsRsyntax.RemoveFromAfterCodes(clsRunStartStatus2Function) + End If + End Sub + Private Sub ucrChkStatus_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkStatus.ControlValueChanged + AddRemoveStartStatus() If ucrChkStatus.Checked Then clsCombinationSubCalcList.AddParameter("sub3", clsRFunctionParameter:=clsCalcStatus, bIncludeArgumentName:=False, iPosition:=2) clsListSubCalc.AddParameter("sub3", clsRFunctionParameter:=clsCalcStatus, bIncludeArgumentName:=False, iPosition:=2) diff --git a/instat/dlgView.vb b/instat/dlgView.vb index 2da68d9390f..ad07e6cd2a0 100644 --- a/instat/dlgView.vb +++ b/instat/dlgView.vb @@ -61,12 +61,11 @@ Public Class dlgView ucrChkRowNumbers.AddToLinkedControls(ucrNudNumberRows, {True}, bNewLinkedHideIfParameterMissing:=True, bNewLinkedAddRemoveParameter:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=6) - ucrNudNumberRows.Visible = rdoDispOutputWindow.Checked ucrReceiverView.SetParameter(New RParameter("x", 1, bNewIncludeArgumentName:=False)) ucrNudNumberRows.SetParameter(New RParameter("n", 1)) - 'ucrNudNumberRows.Minimum = 1 + ucrNudNumberRows.SetRDefault(6) ucrNudNumberRows.SetLinkedDisplayControl(lblNumberofRows) @@ -158,6 +157,7 @@ Public Class dlgView clsViewColumnsFunction.SetPackageName("utils") clsViewColumnsFunction.SetRCommand("View") + End Sub Private Sub SetRCodeForControls(bReset As Boolean) @@ -198,7 +198,6 @@ Public Class dlgView Else ucrBase.OKEnabled(False) End If - End Sub Private Sub ucrBase_ClickReset(sender As Object, e As EventArgs) Handles ucrBase.ClickReset @@ -217,7 +216,6 @@ Public Class dlgView ucrSaveData.SetSaveType(RObjectTypeLabel.Table, strRObjectFormat:=RObjectFormat.Text) If ucrNudNumberRows.GetText <> "" OrElse ucrChkDisplayFromTop.Checked Then ucrBase.clsRsyntax.SetBaseRFunction(clsOutputWindowFunction) - If ucrChkDisplayFromTop.Checked Then clsOutputWindowFunction.SetRCommand("head") Else @@ -231,6 +229,7 @@ Public Class dlgView ucrBase.clsRsyntax.RemoveFromAfterCodes(clsGetObjectDataFunction) ucrBase.clsRsyntax.iCallType = 0 ucrBase.clsRsyntax.SetBaseRFunction(clsViewColumnsFunction) + clsViewColumnsFunction.AddParameter(strParameterName:="title", Chr(34) & ucrSelectorForView.strCurrentDataFrame & Chr(34), iPosition:=2) ucrSaveData.Visible = False cmdTableOptions.Visible = False ucrSaveData.Visible = False @@ -271,6 +270,8 @@ Public Class dlgView Private Sub ucrSelectorForView_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrSelectorForView.ControlValueChanged DataFrameLength() + clsOutputWindowFunction.AddParameter("data", clsRFunctionParameter:=ucrSelectorForView.ucrAvailableDataFrames.clsCurrDataFrame, iPosition:=0) + clsHeadRFunction.AddParameter("data", clsRFunctionParameter:=ucrSelectorForView.ucrAvailableDataFrames.clsCurrDataFrame, iPosition:=0) End Sub Private Sub cmdTableOptions_Click(sender As Object, e As EventArgs) Handles cmdTableOptions.Click diff --git a/instat/dlgViewGraph.Designer.vb b/instat/dlgViewGraph.Designer.vb index e92f9875b32..8b80ba15a17 100644 --- a/instat/dlgViewGraph.Designer.vb +++ b/instat/dlgViewGraph.Designer.vb @@ -39,15 +39,15 @@ Partial Class dlgViewGraph Private Sub InitializeComponent() Me.grpDisplayOptions = New System.Windows.Forms.GroupBox() + Me.rdoMaximised = New System.Windows.Forms.RadioButton() Me.rdoInteractiveView = New System.Windows.Forms.RadioButton() Me.rdoRViewer = New System.Windows.Forms.RadioButton() Me.rdoOutputWindow = New System.Windows.Forms.RadioButton() + Me.ucrPnlDisplayOptions = New instat.UcrPanel() Me.lblGraphtoUse = New System.Windows.Forms.Label() Me.ucrGraphReceiver = New instat.ucrReceiverSingle() - Me.ucrPnlDisplayOptions = New instat.UcrPanel() Me.ucrGraphsSelector = New instat.ucrSelectorByDataFrameAddRemove() Me.ucrBase = New instat.ucrButtons() - Me.rdoMaximised = New System.Windows.Forms.RadioButton() Me.grpDisplayOptions.SuspendLayout() Me.SuspendLayout() ' @@ -58,22 +58,30 @@ Partial Class dlgViewGraph Me.grpDisplayOptions.Controls.Add(Me.rdoRViewer) Me.grpDisplayOptions.Controls.Add(Me.rdoOutputWindow) Me.grpDisplayOptions.Controls.Add(Me.ucrPnlDisplayOptions) - Me.grpDisplayOptions.Location = New System.Drawing.Point(369, 135) - Me.grpDisplayOptions.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.grpDisplayOptions.Location = New System.Drawing.Point(246, 90) Me.grpDisplayOptions.Name = "grpDisplayOptions" - Me.grpDisplayOptions.Padding = New System.Windows.Forms.Padding(4, 4, 4, 4) - Me.grpDisplayOptions.Size = New System.Drawing.Size(326, 186) + Me.grpDisplayOptions.Size = New System.Drawing.Size(217, 124) Me.grpDisplayOptions.TabIndex = 3 Me.grpDisplayOptions.TabStop = False Me.grpDisplayOptions.Text = "Display Options" ' + 'rdoMaximised + ' + Me.rdoMaximised.AutoSize = True + Me.rdoMaximised.Location = New System.Drawing.Point(9, 43) + Me.rdoMaximised.Name = "rdoMaximised" + Me.rdoMaximised.Size = New System.Drawing.Size(113, 17) + Me.rdoMaximised.TabIndex = 4 + Me.rdoMaximised.TabStop = True + Me.rdoMaximised.Text = "Maximised window" + Me.rdoMaximised.UseVisualStyleBackColor = True + ' 'rdoInteractiveView ' Me.rdoInteractiveView.AutoSize = True - Me.rdoInteractiveView.Location = New System.Drawing.Point(14, 98) - Me.rdoInteractiveView.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.rdoInteractiveView.Location = New System.Drawing.Point(9, 65) Me.rdoInteractiveView.Name = "rdoInteractiveView" - Me.rdoInteractiveView.Size = New System.Drawing.Size(203, 24) + Me.rdoInteractiveView.Size = New System.Drawing.Size(140, 17) Me.rdoInteractiveView.TabIndex = 1 Me.rdoInteractiveView.TabStop = True Me.rdoInteractiveView.Text = "Interactive viewer(Plotly)" @@ -82,10 +90,9 @@ Partial Class dlgViewGraph 'rdoRViewer ' Me.rdoRViewer.AutoSize = True - Me.rdoRViewer.Location = New System.Drawing.Point(10, 130) - Me.rdoRViewer.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.rdoRViewer.Location = New System.Drawing.Point(9, 87) Me.rdoRViewer.Name = "rdoRViewer" - Me.rdoRViewer.Size = New System.Drawing.Size(99, 24) + Me.rdoRViewer.Size = New System.Drawing.Size(68, 17) Me.rdoRViewer.TabIndex = 2 Me.rdoRViewer.TabStop = True Me.rdoRViewer.Text = "R-Viewer" @@ -94,22 +101,29 @@ Partial Class dlgViewGraph 'rdoOutputWindow ' Me.rdoOutputWindow.AutoSize = True - Me.rdoOutputWindow.Location = New System.Drawing.Point(14, 33) - Me.rdoOutputWindow.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.rdoOutputWindow.Location = New System.Drawing.Point(9, 22) Me.rdoOutputWindow.Name = "rdoOutputWindow" - Me.rdoOutputWindow.Size = New System.Drawing.Size(139, 24) + Me.rdoOutputWindow.Size = New System.Drawing.Size(96, 17) Me.rdoOutputWindow.TabIndex = 3 Me.rdoOutputWindow.TabStop = True Me.rdoOutputWindow.Text = "Output window" Me.rdoOutputWindow.UseVisualStyleBackColor = True ' + 'ucrPnlDisplayOptions + ' + Me.ucrPnlDisplayOptions.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ucrPnlDisplayOptions.Location = New System.Drawing.Point(6, 19) + Me.ucrPnlDisplayOptions.Margin = New System.Windows.Forms.Padding(6, 6, 6, 6) + Me.ucrPnlDisplayOptions.Name = "ucrPnlDisplayOptions" + Me.ucrPnlDisplayOptions.Size = New System.Drawing.Size(203, 99) + Me.ucrPnlDisplayOptions.TabIndex = 0 + ' 'lblGraphtoUse ' Me.lblGraphtoUse.AutoSize = True - Me.lblGraphtoUse.Location = New System.Drawing.Point(375, 68) - Me.lblGraphtoUse.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblGraphtoUse.Location = New System.Drawing.Point(250, 45) Me.lblGraphtoUse.Name = "lblGraphtoUse" - Me.lblGraphtoUse.Size = New System.Drawing.Size(114, 20) + Me.lblGraphtoUse.Size = New System.Drawing.Size(77, 13) Me.lblGraphtoUse.TabIndex = 1 Me.lblGraphtoUse.Text = "Graph to View:" ' @@ -117,71 +131,49 @@ Partial Class dlgViewGraph ' Me.ucrGraphReceiver.AutoSize = True Me.ucrGraphReceiver.frmParent = Me - Me.ucrGraphReceiver.Location = New System.Drawing.Point(375, 90) + Me.ucrGraphReceiver.Location = New System.Drawing.Point(250, 60) Me.ucrGraphReceiver.Margin = New System.Windows.Forms.Padding(0) Me.ucrGraphReceiver.Name = "ucrGraphReceiver" Me.ucrGraphReceiver.Selector = Nothing - Me.ucrGraphReceiver.Size = New System.Drawing.Size(180, 30) + Me.ucrGraphReceiver.Size = New System.Drawing.Size(120, 20) Me.ucrGraphReceiver.strNcFilePath = "" Me.ucrGraphReceiver.TabIndex = 2 Me.ucrGraphReceiver.ucrSelector = Nothing ' - 'ucrPnlDisplayOptions - ' - Me.ucrPnlDisplayOptions.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrPnlDisplayOptions.Location = New System.Drawing.Point(9, 28) - Me.ucrPnlDisplayOptions.Margin = New System.Windows.Forms.Padding(9) - Me.ucrPnlDisplayOptions.Name = "ucrPnlDisplayOptions" - Me.ucrPnlDisplayOptions.Size = New System.Drawing.Size(304, 148) - Me.ucrPnlDisplayOptions.TabIndex = 0 - ' 'ucrGraphsSelector ' Me.ucrGraphsSelector.AutoSize = True Me.ucrGraphsSelector.bDropUnusedFilterLevels = False Me.ucrGraphsSelector.bShowHiddenColumns = False Me.ucrGraphsSelector.bUseCurrentFilter = True - Me.ucrGraphsSelector.Location = New System.Drawing.Point(15, 15) + Me.ucrGraphsSelector.Location = New System.Drawing.Point(10, 10) Me.ucrGraphsSelector.Margin = New System.Windows.Forms.Padding(0) Me.ucrGraphsSelector.Name = "ucrGraphsSelector" - Me.ucrGraphsSelector.Size = New System.Drawing.Size(320, 274) + Me.ucrGraphsSelector.Size = New System.Drawing.Size(213, 183) Me.ucrGraphsSelector.TabIndex = 0 ' 'ucrBase ' Me.ucrBase.AutoSize = True Me.ucrBase.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink - Me.ucrBase.Location = New System.Drawing.Point(15, 330) - Me.ucrBase.Margin = New System.Windows.Forms.Padding(6) + Me.ucrBase.Location = New System.Drawing.Point(10, 220) + Me.ucrBase.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.ucrBase.Name = "ucrBase" - Me.ucrBase.Size = New System.Drawing.Size(611, 77) + Me.ucrBase.Size = New System.Drawing.Size(408, 52) Me.ucrBase.TabIndex = 4 ' - 'rdoMaximised - ' - Me.rdoMaximised.AutoSize = True - Me.rdoMaximised.Location = New System.Drawing.Point(14, 65) - Me.rdoMaximised.Margin = New System.Windows.Forms.Padding(4) - Me.rdoMaximised.Name = "rdoMaximised" - Me.rdoMaximised.Size = New System.Drawing.Size(164, 24) - Me.rdoMaximised.TabIndex = 4 - Me.rdoMaximised.TabStop = True - Me.rdoMaximised.Text = "Maximised window" - Me.rdoMaximised.UseVisualStyleBackColor = True - ' 'dlgViewGraph ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(144.0!, 144.0!) + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi Me.AutoSize = True - Me.ClientSize = New System.Drawing.Size(706, 414) + Me.ClientSize = New System.Drawing.Size(471, 276) Me.Controls.Add(Me.ucrGraphReceiver) Me.Controls.Add(Me.lblGraphtoUse) Me.Controls.Add(Me.grpDisplayOptions) Me.Controls.Add(Me.ucrGraphsSelector) Me.Controls.Add(Me.ucrBase) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow - Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.MaximizeBox = False Me.MinimizeBox = False Me.Name = "dlgViewGraph" diff --git a/instat/dlgViewGraph.vb b/instat/dlgViewGraph.vb index 4151d80d9c4..151b125fda4 100644 --- a/instat/dlgViewGraph.vb +++ b/instat/dlgViewGraph.vb @@ -40,6 +40,7 @@ Public Class dlgViewGraph Private Sub InitialiseDialog() ucrBase.iHelpTopicID = 525 + ucrBase.clsRsyntax.bSeparateThread = False 'Selector ucrGraphsSelector.SetParameter(New RParameter("data_name", 0)) @@ -63,7 +64,6 @@ Public Class dlgViewGraph 'todo. Calling print() from this dialog doesn't work. investigate why 'temporarily disabled - rdoRViewer.Enabled = False End Sub Private Sub SetDefaults() @@ -125,8 +125,7 @@ Public Class dlgViewGraph clsGetObjectRFunction.AddParameter("as_file", strParameterValue:="FALSE", iPosition:=2) ucrBase.clsRsyntax.SetBaseRFunction(clsViewObjectRFunction) ElseIf rdoRViewer.Checked Then - 'clsViewObjectRFunction.AddParameter("object", clsRFunctionParameter:=clsGetObjectRFunction) - 'clsViewObjectRFunction.RemoveParameterByName("object_format") + clsGetObjectRFunction.AddParameter("as_file", strParameterValue:="FALSE", iPosition:=2) ucrBase.clsRsyntax.SetBaseRFunction(clsPrintRFunction) End If End Sub diff --git a/instat/frmMain.Designer.vb b/instat/frmMain.Designer.vb index a12244e8138..eea0678acb3 100644 --- a/instat/frmMain.Designer.vb +++ b/instat/frmMain.Designer.vb @@ -322,6 +322,7 @@ Partial Class frmMain Me.mnuClimaticMappingMap = New System.Windows.Forms.ToolStripMenuItem() Me.mnuClimaticMappingCheckStationLocations = New System.Windows.Forms.ToolStripMenuItem() Me.mnuClimaticModel = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuClimaticModelOutfilling = New System.Windows.Forms.ToolStripMenuItem() Me.mnuClimaticModelsExtremes = New System.Windows.Forms.ToolStripMenuItem() Me.mnuClimaticModelCircular = New System.Windows.Forms.ToolStripMenuItem() Me.mnuClimaticModelMarkovModelling = New System.Windows.Forms.ToolStripMenuItem() @@ -1512,7 +1513,7 @@ Partial Class frmMain 'ToolStripSeparator22 ' Me.ToolStripSeparator22.Name = "ToolStripSeparator22" - Me.ToolStripSeparator22.Size = New System.Drawing.Size(210, 6) + Me.ToolStripSeparator22.Size = New System.Drawing.Size(323, 6) ' 'mnuViewStructuredMenu ' @@ -1521,13 +1522,6 @@ Partial Class frmMain Me.mnuViewStructuredMenu.Size = New System.Drawing.Size(326, 34) Me.mnuViewStructuredMenu.Text = "Structured Menu" ' - - 'ToolStripSeparator22 - ' - Me.ToolStripSeparator22.Name = "ToolStripSeparator22" - Me.ToolStripSeparator22.Size = New System.Drawing.Size(323, 6) - ' - 'mnuViewClimaticMenu ' Me.mnuViewClimaticMenu.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None @@ -1548,13 +1542,8 @@ Partial Class frmMain ' Me.mnuViewOptionsByContextMenu.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None Me.mnuViewOptionsByContextMenu.Name = "mnuViewOptionsByContextMenu" - - Me.mnuViewOptionsByContextMenu.Size = New System.Drawing.Size(213, 22) - Me.mnuViewOptionsByContextMenu.Text = "Experiments Menu" - Me.mnuViewOptionsByContextMenu.Size = New System.Drawing.Size(326, 34) Me.mnuViewOptionsByContextMenu.Text = "Experiments" - ' 'ToolStripSeparator39 ' @@ -2574,11 +2563,18 @@ Partial Class frmMain ' 'mnuClimaticModel ' - Me.mnuClimaticModel.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuClimaticModelsExtremes, Me.mnuClimaticModelCircular, Me.mnuClimaticModelMarkovModelling}) + Me.mnuClimaticModel.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuClimaticModelOutfilling, Me.mnuClimaticModelsExtremes, Me.mnuClimaticModelCircular, Me.mnuClimaticModelMarkovModelling}) Me.mnuClimaticModel.Name = "mnuClimaticModel" Me.mnuClimaticModel.Size = New System.Drawing.Size(325, 34) Me.mnuClimaticModel.Text = "Model" ' + 'mnuClimaticModelOutfilling + ' + Me.mnuClimaticModelOutfilling.Enabled = False + Me.mnuClimaticModelOutfilling.Name = "mnuClimaticModelOutfilling" + Me.mnuClimaticModelOutfilling.Size = New System.Drawing.Size(271, 34) + Me.mnuClimaticModelOutfilling.Text = "Outfilling..." + ' 'mnuClimaticModelsExtremes ' Me.mnuClimaticModelsExtremes.Name = "mnuClimaticModelsExtremes" @@ -3229,16 +3225,13 @@ Partial Class frmMain Me.mnuDataViewWindow.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None Me.mnuDataViewWindow.Name = "mnuDataViewWindow" Me.mnuDataViewWindow.Size = New System.Drawing.Size(226, 34) - Me.mnuDataViewWindow.Size = New System.Drawing.Size(148, 22) Me.mnuDataViewWindow.Text = "Data View" ' 'mnuRDataViewerWindow ' - Me.mnuRDataViewerWindow.Enabled = False Me.mnuRDataViewerWindow.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None Me.mnuRDataViewerWindow.Name = "mnuRDataViewerWindow" Me.mnuRDataViewerWindow.Size = New System.Drawing.Size(226, 34) - Me.mnuRDataViewerWindow.Size = New System.Drawing.Size(148, 22) Me.mnuRDataViewerWindow.Text = "R-Data Viewer" ' 'mnuTbOutput @@ -3462,7 +3455,6 @@ Partial Class frmMain Me.mnuBar.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow Me.mnuBar.Location = New System.Drawing.Point(0, 0) Me.mnuBar.Name = "mnuBar" - Me.mnuBar.Padding = New System.Windows.Forms.Padding(6, 2, 0, 2) Me.mnuBar.RenderMode = System.Windows.Forms.ToolStripRenderMode.System Me.mnuBar.ShowItemToolTips = True Me.mnuBar.Size = New System.Drawing.Size(1251, 33) @@ -4916,11 +4908,7 @@ Partial Class frmMain ' Me.mnuOptionsByContextCheckData.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuOptionsByContextCheckDataDuplicateRows, Me.mnuOptionsByContextCheckDataCompareColumns, Me.ToolStripSeparator47, Me.mnuOptionsByContextCheckDataOneVariableSummarise, Me.mnuOptionsByContextCheckDataOneVariableGraph, Me.mnuOptionsByContextCheckDataOneVariableFrequencies}) Me.mnuOptionsByContextCheckData.Name = "mnuOptionsByContextCheckData" - - Me.mnuOptionsByContextCheckData.Size = New System.Drawing.Size(180, 22) - Me.mnuOptionsByContextCheckData.Size = New System.Drawing.Size(209, 34) - Me.mnuOptionsByContextCheckData.Text = "Check Data" ' 'mnuOptionsByContextCheckDataDuplicateRows @@ -4962,11 +4950,7 @@ Partial Class frmMain ' Me.mnuOptionsByContextDefine.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuOptionsByContextDefineOnStation, Me.mnuOptionsByContextDefineOnFarm}) Me.mnuOptionsByContextDefine.Name = "mnuOptionsByContextDefine" - - Me.mnuOptionsByContextDefine.Size = New System.Drawing.Size(180, 22) - Me.mnuOptionsByContextDefine.Size = New System.Drawing.Size(209, 34) - Me.mnuOptionsByContextDefine.Text = "Define" ' 'mnuOptionsByContextDefineOnStation @@ -4985,11 +4969,7 @@ Partial Class frmMain ' Me.mnuOptionsByContextPrepare.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuOptionsByContextPrepareCalculateDIfferenceBetweenOptions, Me.ToolStripSeparator48, Me.mnuOptionsByContextMergeAdditionalData, Me.mnuOptionsByContextPrepareStack, Me.mnuOptionsByContextPrepareUnstack}) Me.mnuOptionsByContextPrepare.Name = "mnuOptionsByContextPrepare" - - Me.mnuOptionsByContextPrepare.Size = New System.Drawing.Size(180, 22) - Me.mnuOptionsByContextPrepare.Size = New System.Drawing.Size(209, 34) - Me.mnuOptionsByContextPrepare.Text = "Prepare" ' 'mnuOptionsByContextPrepareCalculateDIfferenceBetweenOptions @@ -5025,11 +5005,7 @@ Partial Class frmMain ' Me.mnuOptionsByContextDescribe.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuOptionsByContextDescribeCompareTwoTreatments, Me.mnuOptionsByContextDescribeCompareMultipleTreatments, Me.mnuOptionsByContextDescribeBoxplot}) Me.mnuOptionsByContextDescribe.Name = "mnuOptionsByContextDescribe" - - Me.mnuOptionsByContextDescribe.Size = New System.Drawing.Size(180, 22) - Me.mnuOptionsByContextDescribe.Size = New System.Drawing.Size(209, 34) - Me.mnuOptionsByContextDescribe.Text = "Describe" ' 'mnuOptionsByContextDescribeCompareTwoTreatments @@ -5055,11 +5031,7 @@ Partial Class frmMain ' Me.mnuOptionsByContextModel.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuOptionsByContextModelFitModel, Me.mnuOptionsByContextGeneralFitModel}) Me.mnuOptionsByContextModel.Name = "mnuOptionsByContextModel" - - Me.mnuOptionsByContextModel.Size = New System.Drawing.Size(180, 22) - Me.mnuOptionsByContextModel.Size = New System.Drawing.Size(209, 34) - Me.mnuOptionsByContextModel.Text = "Model" ' 'mnuOptionsByContextModelFitModel @@ -5078,11 +5050,7 @@ Partial Class frmMain ' Me.mnuOptionsByContextCropModel.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuOptionsByContextCropModelApsimxExamples}) Me.mnuOptionsByContextCropModel.Name = "mnuOptionsByContextCropModel" - - Me.mnuOptionsByContextCropModel.Size = New System.Drawing.Size(180, 22) - Me.mnuOptionsByContextCropModel.Size = New System.Drawing.Size(209, 34) - Me.mnuOptionsByContextCropModel.Text = "Crop Model" ' 'mnuOptionsByContextCropModelApsimxExamples @@ -5172,7 +5140,7 @@ Partial Class frmMain Me.splOverall.BackColor = System.Drawing.Color.LightGray Me.splOverall.Dock = System.Windows.Forms.DockStyle.Fill Me.splOverall.Location = New System.Drawing.Point(0, 72) - Me.splOverall.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.splOverall.Margin = New System.Windows.Forms.Padding(4) Me.splOverall.Name = "splOverall" Me.splOverall.Orientation = System.Windows.Forms.Orientation.Horizontal ' @@ -5186,7 +5154,7 @@ Partial Class frmMain Me.splOverall.Panel2.BackColor = System.Drawing.SystemColors.Control Me.splOverall.Panel2.Controls.Add(Me.splDataOutput) Me.splOverall.Size = New System.Drawing.Size(1251, 619) - Me.splOverall.SplitterDistance = 246 + Me.splOverall.SplitterDistance = 245 Me.splOverall.SplitterWidth = 8 Me.splOverall.TabIndex = 10 ' @@ -5195,7 +5163,7 @@ Partial Class frmMain Me.splExtraWindows.BackColor = System.Drawing.Color.LightGray Me.splExtraWindows.Dock = System.Windows.Forms.DockStyle.Fill Me.splExtraWindows.Location = New System.Drawing.Point(0, 0) - Me.splExtraWindows.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.splExtraWindows.Margin = New System.Windows.Forms.Padding(4) Me.splExtraWindows.Name = "splExtraWindows" ' 'splExtraWindows.Panel1 @@ -5207,7 +5175,7 @@ Partial Class frmMain ' Me.splExtraWindows.Panel2.BackColor = System.Drawing.SystemColors.Control Me.splExtraWindows.Panel2.Controls.Add(Me.ucrScriptWindow) - Me.splExtraWindows.Size = New System.Drawing.Size(1251, 246) + Me.splExtraWindows.Size = New System.Drawing.Size(1251, 245) Me.splExtraWindows.SplitterDistance = 378 Me.splExtraWindows.SplitterWidth = 8 Me.splExtraWindows.TabIndex = 0 @@ -5217,7 +5185,7 @@ Partial Class frmMain Me.splMetadata.BackColor = System.Drawing.Color.LightGray Me.splMetadata.Dock = System.Windows.Forms.DockStyle.Fill Me.splMetadata.Location = New System.Drawing.Point(0, 0) - Me.splMetadata.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.splMetadata.Margin = New System.Windows.Forms.Padding(4) Me.splMetadata.Name = "splMetadata" ' 'splMetadata.Panel1 @@ -5228,7 +5196,7 @@ Partial Class frmMain ' Me.splMetadata.Panel2.BackColor = System.Drawing.SystemColors.Control Me.splMetadata.Panel2.Controls.Add(Me.ucrDataFrameMeta) - Me.splMetadata.Size = New System.Drawing.Size(378, 246) + Me.splMetadata.Size = New System.Drawing.Size(378, 245) Me.splMetadata.SplitterDistance = 102 Me.splMetadata.SplitterWidth = 8 Me.splMetadata.TabIndex = 0 @@ -5242,7 +5210,7 @@ Partial Class frmMain Me.ucrColumnMeta.Location = New System.Drawing.Point(0, 0) Me.ucrColumnMeta.Margin = New System.Windows.Forms.Padding(6, 8, 6, 8) Me.ucrColumnMeta.Name = "ucrColumnMeta" - Me.ucrColumnMeta.Size = New System.Drawing.Size(102, 246) + Me.ucrColumnMeta.Size = New System.Drawing.Size(102, 245) Me.ucrColumnMeta.TabIndex = 0 ' 'ucrDataFrameMeta @@ -5253,7 +5221,7 @@ Partial Class frmMain Me.ucrDataFrameMeta.Location = New System.Drawing.Point(0, 0) Me.ucrDataFrameMeta.Margin = New System.Windows.Forms.Padding(6, 8, 6, 8) Me.ucrDataFrameMeta.Name = "ucrDataFrameMeta" - Me.ucrDataFrameMeta.Size = New System.Drawing.Size(268, 246) + Me.ucrDataFrameMeta.Size = New System.Drawing.Size(268, 245) Me.ucrDataFrameMeta.TabIndex = 0 ' 'ucrScriptWindow @@ -5264,7 +5232,7 @@ Partial Class frmMain Me.ucrScriptWindow.Location = New System.Drawing.Point(0, 0) Me.ucrScriptWindow.Margin = New System.Windows.Forms.Padding(6, 8, 6, 8) Me.ucrScriptWindow.Name = "ucrScriptWindow" - Me.ucrScriptWindow.Size = New System.Drawing.Size(865, 246) + Me.ucrScriptWindow.Size = New System.Drawing.Size(865, 245) Me.ucrScriptWindow.strActiveTabText = "" Me.ucrScriptWindow.TabIndex = 2 Me.ucrScriptWindow.Tag = "Script_Window" @@ -5274,7 +5242,7 @@ Partial Class frmMain Me.splDataOutput.BackColor = System.Drawing.Color.LightGray Me.splDataOutput.Dock = System.Windows.Forms.DockStyle.Fill Me.splDataOutput.Location = New System.Drawing.Point(0, 0) - Me.splDataOutput.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.splDataOutput.Margin = New System.Windows.Forms.Padding(4) Me.splDataOutput.Name = "splDataOutput" ' 'splDataOutput.Panel1 @@ -5286,7 +5254,7 @@ Partial Class frmMain ' Me.splDataOutput.Panel2.BackColor = System.Drawing.SystemColors.Control Me.splDataOutput.Panel2.Controls.Add(Me.ucrOutput) - Me.splDataOutput.Size = New System.Drawing.Size(1251, 365) + Me.splDataOutput.Size = New System.Drawing.Size(1251, 366) Me.splDataOutput.SplitterDistance = 573 Me.splDataOutput.SplitterWidth = 8 Me.splDataOutput.TabIndex = 0 @@ -5300,7 +5268,7 @@ Partial Class frmMain Me.ucrDataViewer.Location = New System.Drawing.Point(0, 0) Me.ucrDataViewer.Margin = New System.Windows.Forms.Padding(6, 8, 6, 8) Me.ucrDataViewer.Name = "ucrDataViewer" - Me.ucrDataViewer.Size = New System.Drawing.Size(573, 365) + Me.ucrDataViewer.Size = New System.Drawing.Size(573, 366) Me.ucrDataViewer.TabIndex = 0 Me.ucrDataViewer.Tag = "Data_View" ' @@ -5312,7 +5280,7 @@ Partial Class frmMain Me.ucrOutput.Location = New System.Drawing.Point(0, 0) Me.ucrOutput.Margin = New System.Windows.Forms.Padding(6, 8, 6, 8) Me.ucrOutput.Name = "ucrOutput" - Me.ucrOutput.Size = New System.Drawing.Size(670, 365) + Me.ucrOutput.Size = New System.Drawing.Size(670, 366) Me.ucrOutput.TabIndex = 0 ' 'mnuPlotly @@ -5362,7 +5330,7 @@ Partial Class frmMain Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.IsMdiContainer = True Me.MainMenuStrip = Me.mnuBar - Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.Margin = New System.Windows.Forms.Padding(4) Me.Name = "frmMain" Me.Text = "R-Instat .." Me.WindowState = System.Windows.Forms.FormWindowState.Maximized @@ -6082,4 +6050,5 @@ Partial Class frmMain Friend WithEvents mnuTbDataView As ToolStripSplitButton Friend WithEvents mnuDataViewWindow As ToolStripMenuItem Friend WithEvents mnuRDataViewerWindow As ToolStripMenuItem + Friend WithEvents mnuClimaticModelOutfilling As ToolStripMenuItem End Class diff --git a/instat/frmMain.vb b/instat/frmMain.vb index 15ba754f7a2..5542b19b797 100644 --- a/instat/frmMain.vb +++ b/instat/frmMain.vb @@ -223,9 +223,15 @@ Public Class frmMain '--------------------------------------- '-------------------------------------- - CreateAdditionalLibraryDirectory() + Dim strVersion As String = My.Application.Info.Version.Major.ToString() & "." & + My.Application.Info.Version.Minor.ToString() & "." & + My.Application.Info.Version.Build.ToString() + + Me.Text = "R-Instat " & strVersion + + CreateAdditionalLibraryDirectory(strVersion) '------------------------------------- - SetAppVersionNumber() + isMaximised = True 'Need to get the windowstate when the application is loaded SetHideMenus() @@ -413,9 +419,9 @@ Public Class frmMain End If End Function - Private Sub CreateAdditionalLibraryDirectory() + Private Sub CreateAdditionalLibraryDirectory(strVersion As String) ' Define the custom library path in the ApplicationData folder - Dim strLibraryPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "R-Instat", "library") + Dim strLibraryPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "R-Instat", strVersion, "library") Try ' Check if the directory exists, if not, create it @@ -423,18 +429,15 @@ Public Class frmMain Directory.CreateDirectory(strLibraryPath) End If + 'To ensure this part of the code only runs when the application Is Not in the Debug mode (i.e., in Release mode) #If Not DEBUG Then - ' Add the custom library path to R's .libPaths for user-level package installation - Dim strScript As String = $".libPaths(c('{strLibraryPath.Replace("\", "/")}', .libPaths()))" & Environment.NewLine & - "if (length(.libPaths()) > 2) { - current_paths <- .libPaths() - valid_indices <- c(1, 3)[c(1, 3) <= length(current_paths)] - .libPaths(current_paths[valid_indices]) - }" + Dim clsSetLibPathsFunction As New RFunction + clsSetLibPathsFunction.SetRCommand("set_library_paths") + clsSetLibPathsFunction.AddParameter("library_path", Chr(34) & strLibraryPath.Replace("\", "/") & Chr(34)) ' Execute the R script to update the library paths - clsRLink.RunScript(strScript:=strScript, bSeparateThread:=False, bSilent:=False) + clsRLink.RunScript(strScript:=clsSetLibPathsFunction.ToScript, bSeparateThread:=False, bSilent:=False) #End If Catch ex As Exception ' Handle potential errors (e.g., directory creation failure) @@ -605,10 +608,8 @@ Public Class frmMain mnuTbLan.Visible = bVisible End Sub - Public Sub SetAppVersionNumber() - Me.Text = "R-Instat " & My.Application.Info.Version.Major.ToString() & "." & - My.Application.Info.Version.Minor.ToString() & "." & - My.Application.Info.Version.Build.ToString() + Public Sub SetAppVersionNumber(strVersionNumber As String) + End Sub Private Sub SetHideMenus() @@ -1186,7 +1187,7 @@ Public Class frmMain Dim strCurrentStatus As String strCurrentStatus = tstatus.Text - If clsRLink.bInstatObjectExists Then + If clsRLink.bInstatObjectExists AndAlso ucrDataViewer.HasDataChanged Then tstatus.Text = GetTranslation("Auto saving data...") Cursor = Cursors.WaitCursor If Not Directory.Exists(strAutoSaveDataFolderPath) Then @@ -1197,7 +1198,7 @@ Public Class frmMain strTempFile = "data_" & DateTime.Now.ToString("yyyyMMdd_HHmmss") & ".rds" strCurrentAutoSaveDataFilePath = Path.Combine(strAutoSaveDataFolderPath, strTempFile) - Dim strBackupMessage As String = $"##########{vbCrLf}## Backing up data and log files on: {DateTime.Now}{vbCrLf}##########" + Dim strBackupMessage As String = $"##########{vbCrLf}## Backing up data and metadata on: {DateTime.Now}{vbCrLf}##########" Me.ucrScriptWindow.LogText(strBackupMessage) clsRLink.AppendToAutoSaveLog(strBackupMessage) @@ -1209,6 +1210,7 @@ Public Class frmMain tstatus.Text = strCurrentStatus Cursor = Cursors.Default bFirstBackupDone = True + ucrDataViewer.HasDataChanged = False End If End Sub @@ -1749,6 +1751,10 @@ Public Class frmMain ucrDataViewer.UseColumnSelectionInDataView(bUseColumnSelecion) End Sub + Public Function IsColumnSelectionApplied() As Boolean + Return ucrDataViewer.IsColumnSelectionApplied + End Function + Public Sub SetCurrentDataFrame(strDataName As String) ucrDataViewer.SetCurrentDataFrame(strDataName) ucrColumnMeta.SetCurrentDataFrame(strDataName) @@ -2974,4 +2980,13 @@ Public Class frmMain End If End Sub + Private Sub mnuRDataViewerWindow_Click(sender As Object, e As EventArgs) Handles mnuRDataViewerWindow.Click + ucrDataViewer.StartWait() + ucrDataViewer.GetCurrentDataFrameFocus().clsPrepareFunctions.ViewDataFrame() + ucrDataViewer.EndWait() + End Sub + + Private Sub mnuClimaticModelOutfilling_Click(sender As Object, e As EventArgs) Handles mnuClimaticModelOutfilling.Click + dlgOutfillingStationData.ShowDialog() + End Sub End Class diff --git a/instat/instat.vbproj b/instat/instat.vbproj index 8f72bfeb211..22cb6700b6a 100644 --- a/instat/instat.vbproj +++ b/instat/instat.vbproj @@ -391,6 +391,12 @@ Form + + dlgOutfillingStationData.vb + + + Form + ucrCellsFootNotes.vb @@ -3444,6 +3450,9 @@ sdgSummaryThemes.vb + + dlgOutfillingStationData.vb + ucrCellsFootNotes.vb diff --git a/instat/sdgDoyRange.vb b/instat/sdgDoyRange.vb index a8a2d55b020..cab5c87e4e7 100644 --- a/instat/sdgDoyRange.vb +++ b/instat/sdgDoyRange.vb @@ -21,6 +21,7 @@ Public Class sdgDoyRange Private clsDoyFilterCalc As RFunction Private clsCalcFromList As RFunction Private clsCalcFromMainDataFrame As RFunction + Public clsIfElseFirstDoyFilledFunction As RFunction Private clsDayFromOperator As ROperator Private clsDayToOperator As ROperator Private bControlsInitialised As Boolean = False @@ -32,7 +33,7 @@ Public Class sdgDoyRange autoTranslate(Me) End Sub - Public Sub Setup(clsNewDoyFilterCalc As RFunction, clsNewDayFromOperator As ROperator, clsNewDayToOperator As ROperator, clsNewCalcFromList As RFunction, strNewMainDataFrame As String, strNewDoyColumn As String) + Public Sub Setup(clsNewDoyFilterCalc As RFunction, clsNewDayFromOperator As ROperator, clsNewDayToOperator As ROperator, clsNewCalcFromList As RFunction, strNewMainDataFrame As String, strNewDoyColumn As String, Optional clsNewIfElseFirstDoyFilledFunction As RFunction = Nothing) Dim iFrom As Integer Dim iTo As Integer Dim iDiff As Integer @@ -55,6 +56,7 @@ Public Class sdgDoyRange End If clsDoyFilterCalc = clsNewDoyFilterCalc clsCalcFromList = clsNewCalcFromList + clsIfElseFirstDoyFilledFunction = clsNewIfElseFirstDoyFilledFunction strMainDataFrame = strNewMainDataFrame strDoyColumn = strNewDoyColumn @@ -217,8 +219,10 @@ Public Class sdgDoyRange If bUpdate Then If rdoToFixed.Checked Then clsDayToOperator.AddParameter("to", strParameterValue:=ucrDoyTo.GetValue(), iPosition:=1) + clsIfElseFirstDoyFilledFunction.AddParameter("yes", strParameterValue:=ucrDoyTo.GetValue(), iPosition:=1) ElseIf rdoToVariable.Checked Then clsDayToOperator.AddParameter("to", strParameterValue:=ucrReceiverTo.GetVariableNames(False), iPosition:=1) + clsIfElseFirstDoyFilledFunction.AddParameter("yes", strParameterValue:=ucrReceiverTo.GetVariableNames(False), iPosition:=1) ElseIf rdoLength.Checked Then clsFixedDiffOp.SetOperation("+") If clsDayFromOperator.ContainsParameter("from") Then @@ -226,6 +230,7 @@ Public Class sdgDoyRange clsFixedDiffOp.AddParameter("diff", strParameterValue:=ucrNudToDiff.Value, iPosition:=1) clsFixedDiffOp.bBrackets = True clsDayToOperator.AddParameter("to", clsROperatorParameter:=clsFixedDiffOp, iPosition:=1) + clsIfElseFirstDoyFilledFunction.AddParameter("yes", clsROperatorParameter:=clsFixedDiffOp, iPosition:=1) End If End If UpdateCalculatedFrom() diff --git a/instat/static/InstatObject/R/Backend_Components/calculations.R b/instat/static/InstatObject/R/Backend_Components/calculations.R index ebb95254ec6..e7a52f6259a 100644 --- a/instat/static/InstatObject/R/Backend_Components/calculations.R +++ b/instat/static/InstatObject/R/Backend_Components/calculations.R @@ -448,8 +448,29 @@ DataBook$set("public", "apply_instat_calculation", function(calc, curr_data_list if(length(by) == 0) { stop("Cannot find linking columns to merge output from sub calculations with data for calculated_from.") } - if(join_into_overall) curr_data_list[[c_data_label]] <- dplyr::full_join(curr_data_list[[c_data_label]], self$get_data_frame(data_frame_name, use_current_filter = FALSE), by = by) - else { + if(join_into_overall){ + new_data_list <- self$get_data_frame(data_frame_name, use_current_filter = FALSE) + by_col_attributes <- list() + for(i in seq_along(by)) { + # Collect column attributes + by_col_attributes[[by[[i]]]] <- get_column_attributes(new_data_list[[by[[i]]]]) + + # Check and align the data types for each "by" column + if (class(new_data_list[[by[[i]]]]) != class(curr_data_list[[c_data_label]][[by[[i]]]])) { + warning(paste0("Type is different for ", by[[i]], " in the two data frames. Setting as numeric in both data frames.")) + + # Convert factors to numeric if necessary + if (class(new_data_list[[by[[i]]]]) == "factor") { + new_data_list[[by[[i]]]] <- as.numeric(as.character(new_data_list[[by[[i]]]])) + } else if (class(curr_data_list[[c_data_label]][[by[[i]]]]) == "factor") { + curr_data_list[[c_data_label]][[by[[i]]]] <- as.numeric(as.character(curr_data_list[[c_data_label]][[by[[i]]]])) + } else { + stop(paste0("Type is different for ", by[[i]], " in the two data frames and cannot be coerced.")) + } + } + } + curr_data_list[[c_data_label]] <- dplyr::full_join(curr_data_list[[c_data_label]], self$get_data_frame(data_frame_name, use_current_filter = FALSE), by = by) + } else { curr_groups <- dplyr::groups(curr_data_list[[c_data_label]]) curr_data_list[[c_data_label]] <- dplyr::full_join(self$get_data_frame(data_frame_name, use_current_filter = FALSE), curr_data_list[[c_data_label]], by = by) #TODO investigate better way to do this @@ -853,3 +874,27 @@ find_df_from_calc_from <- function(x, column) { } return("") } + +DataBook$set("public", "remove_unused_station_year_combinations", function(data_name, year, station){ + # Create linked data name + linked_data_name <- self$get_linked_to_data_name(data_name, link_cols=c(year, station)) + + # Column Summaries + self$calculate_summary(data_name = data_name, + store_results=TRUE, + factors=c(year, station), + summaries=c("summary_count"), + silent=TRUE) + + self$rename_column_in_data(data_name = linked_data_name, column_name="count_all", new_val="count_year_station_combination_for_linking", label="") + + # Create Filter subdialog: Created new filter + self$add_filter(filter=list(C0=list(column="count_year_station_combination_for_linking", operation="! is.na")), data_name = linked_data_name, filter_name = "removing_additional_years") + + # Dialog: Filter + self$copy_data_object(data_name = linked_data_name, new_name = linked_data_name, filter_name="removing_additional_years") + + # Right click menu: Delete Column(s) + self$remove_columns_in_data(data_name=linked_data_name, cols="count_year_station_combination_for_linking") +} +) diff --git a/instat/static/InstatObject/R/Backend_Components/link.R b/instat/static/InstatObject/R/Backend_Components/link.R index ccd14b356e7..47219b1b139 100644 --- a/instat/static/InstatObject/R/Backend_Components/link.R +++ b/instat/static/InstatObject/R/Backend_Components/link.R @@ -379,4 +379,23 @@ DataBook$set("public", "view_link", function(link_name) { paste("Link columns:", paste(names(temp_link$link_columns), "=", temp_link$link_columns, collapse = ", ")), sep = "\n")) } } -) \ No newline at end of file +) + +# A function to convert the variables in the linked "to data frame"" to be the same class as that of the "from data frame"". +DataBook$set("public", "convert_linked_variable", function(from_data_frame, link_cols) { + to_data_name <- self$get_linked_to_data_name(from_data_frame, link_cols=c(link_cols)) + if (!is.null(to_data_name)){ + linked_variable_name <- self$get_link_between(from_data_frame, to_data_name)$link_columns[[1]] + + # loop through all columns given in variable argument + for (i in seq_along(linked_variable_name)){ + variable_type <- self$get_column_data_types(data_name = from_data_frame, columns = names(linked_variable_name[i])) + linked_variable_type <- self$get_column_data_types(data_name = to_data_name, columns=linked_variable_name[i]) + + if (variable_type != linked_variable_type){ + self$convert_column_to_type(data_name=to_data_name, col_names=linked_variable_name[i], to_type=variable_type) + } + } + } +} +) diff --git a/instat/static/InstatObject/R/data_object_R6.R b/instat/static/InstatObject/R/data_object_R6.R index b123c0a54eb..c188e3d8f03 100644 --- a/instat/static/InstatObject/R/data_object_R6.R +++ b/instat/static/InstatObject/R/data_object_R6.R @@ -921,6 +921,36 @@ DataSheet$set("public", "cor", function(x_col_names, y_col_name, use = "everythi } ) +DataSheet$set("public", "update_selection", function(new_values, column_selection_name = NULL) { + if (missing(new_values)) stop("new_values is required") + if (missing(column_selection_name)) stop("column_selection_name is required") + + column_selection_obj <- private$column_selections[[column_selection_name]] + + if (is.null(column_selection_obj)) { + stop("No column selection found with the name: ", column_selection_name) + } + + # Update conditions in the column selection with new values + updated_conditions <- lapply(column_selection_obj$conditions, function(condition) { + # Check if the parameters exist and replace them with new values + if ("parameters" %in% names(condition)) { + condition$parameters$x <- new_values + } + return(condition) + }) + + # Update the column selection object with the new conditions + column_selection_obj$conditions <- updated_conditions + private$column_selections[[column_selection_name]] <- column_selection_obj + + # Optionally, mark data as changed + self$data_changed <- TRUE + + message("Column selection '", column_selection_name, "' updated successfully with new values.") +}) + + DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", new_col_name = "", label = "", type = "single", .fn, .cols = everything(), new_column_names_df, new_labels_df, ...) { curr_data <- self$get_data_frame(use_current_filter = FALSE, use_column_selection = FALSE) @@ -954,8 +984,18 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne purrr::map(.x = keys_to_delete, .f = ~self$remove_key(key_name = names(active_keys[.x]))) } } - if(self$column_selection_applied()) self$remove_current_column_selection() # Need to use private$data here because changing names of data field + names(private$data)[names(curr_data) == curr_col_name] <- new_col_name + + column_names <- self$get_column_names() + + if (anyNA(column_names)) { + column_names[is.na(column_names)] <- new_col_name + } else { + column_names <- new_col_name + } + + self$update_selection(column_names, private$.current_column_selection$name) if(any(c("sfc", "sfc_MULTIPOLYGON") %in% class(private$data[[curr_col_name]]))){ # Update the geometry column reference sf::st_geometry(private$data) <- new_col_name @@ -976,11 +1016,22 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne } else if (type == "multiple") { if (!missing(new_column_names_df)) { new_col_names <- new_column_names_df[, 1] - cols_changed_index <- new_column_names_df[, 2] + cols_changed_index <- which(names(private$data) %in% new_column_names_df[, 2]) curr_col_names <- names(private$data) curr_col_names[cols_changed_index] <- new_col_names if(any(duplicated(curr_col_names))) stop("Cannot rename columns. Column names must be unique.") - if(self$column_selection_applied()) self$remove_current_column_selection() + names(private$data)[cols_changed_index] <- new_col_names + + column_names <- self$get_column_names() + + if (anyNA(column_names)) { + column_names[is.na(column_names)] <- new_col_names + } else { + column_names <- new_col_names + } + + self$update_selection(column_names, private$.current_column_selection$name) + if(any(c("sfc", "sfc_MULTIPOLYGON") %in% class(private$dataprivate$data)[cols_changed_index])){ # Update the geometry column reference sf::st_geometry(private$data) <- new_col_names @@ -1005,19 +1056,29 @@ DataSheet$set("public", "rename_column_in_data", function(curr_col_name = "", ne } else if (type == "rename_with") { if (missing(.fn)) stop(.fn, "is missing with no default.") curr_col_names <- names(curr_data) + column_names <- self$get_column_names() private$data <- curr_data |> dplyr::rename_with( .fn = .fn, .cols = {{ .cols }}, ... ) - if(self$column_selection_applied()) self$remove_current_column_selection() new_col_names <- names(private$data) if (!all(new_col_names %in% curr_col_names)) { new_col_names <- new_col_names[!(new_col_names %in% curr_col_names)] for (i in seq_along(new_col_names)) { self$append_to_variables_metadata(new_col_names[i], name_label, new_col_names[i]) } + + column_names <- self$get_column_names() + if (anyNA(column_names)) { + column_names[is.na(column_names)] <- new_col_names + } else { + column_names <- new_col_names + } + + self$update_selection(column_names, private$.current_column_selection$name) + self$data_changed <- TRUE self$variables_metadata_changed <- TRUE } @@ -1545,7 +1606,7 @@ DataSheet$set("public", "get_data_frame_length", function(use_current_filter = F DataSheet$set("public", "get_factor_data_frame", function(col_name = "", include_levels = TRUE, include_NA_level = FALSE) { if(!(col_name %in% self$get_column_names())) stop(col_name, " is not a column name,") - col_data <- self$get_columns_from_data(col_name, use_current_filter = FALSE) + col_data <- self$get_columns_from_data(col_name, use_current_filter = TRUE) if(!(is.factor(col_data))) stop(col_name, " is not a factor column") counts <- data.frame(table(col_data)) diff --git a/instat/static/InstatObject/R/dlgOutfillingStationData.Designer.vb b/instat/static/InstatObject/R/dlgOutfillingStationData.Designer.vb new file mode 100644 index 00000000000..0847923f087 --- /dev/null +++ b/instat/static/InstatObject/R/dlgOutfillingStationData.Designer.vb @@ -0,0 +1,54 @@ + _ +Partial Class dlgOutfillingStationData + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.ucrBase = New instat.ucrButtons() + Me.SuspendLayout() + ' + 'ucrBase + ' + Me.ucrBase.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.ucrBase.Location = New System.Drawing.Point(16, 439) + Me.ucrBase.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.ucrBase.Name = "ucrBase" + Me.ucrBase.Size = New System.Drawing.Size(615, 78) + Me.ucrBase.TabIndex = 0 + ' + 'dlgOutfillingStationData + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 20.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(669, 531) + Me.Controls.Add(Me.ucrBase) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgOutfillingStationData" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "Outfilling Station Data" + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents ucrBase As ucrButtons +End Class diff --git a/instat/static/InstatObject/R/dlgOutfillingStationData.resx b/instat/static/InstatObject/R/dlgOutfillingStationData.resx new file mode 100644 index 00000000000..1af7de150c9 --- /dev/null +++ b/instat/static/InstatObject/R/dlgOutfillingStationData.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/instat/static/InstatObject/R/dlgOutfillingStationData.vb b/instat/static/InstatObject/R/dlgOutfillingStationData.vb new file mode 100644 index 00000000000..89fdc2ec562 --- /dev/null +++ b/instat/static/InstatObject/R/dlgOutfillingStationData.vb @@ -0,0 +1,3 @@ +Public Class dlgOutfillingStationData + +End Class \ No newline at end of file diff --git a/instat/static/InstatObject/R/instat_object_R6.R b/instat/static/InstatObject/R/instat_object_R6.R index 5f7a6c88e45..98e0063279f 100644 --- a/instat/static/InstatObject/R/instat_object_R6.R +++ b/instat/static/InstatObject/R/instat_object_R6.R @@ -2215,12 +2215,10 @@ DataBook$set("public","get_variable_sets", function(data_name, set_names, force_ } ) -DataBook$set("public", "crops_definitions", function(data_name, year, station, rain, day, rain_totals, plant_days, plant_lengths, start_check = TRUE, season_data_name, start_day, end_day, definition_props = TRUE, print_table = TRUE) { - plant_day_name <- "plant_day" - plant_length_name <- "plant_length" - rain_total_name <- "rain_total" - +DataBook$set("public", "crops_definitions", function(data_name, year, station, rain, day, rain_totals, plant_days, plant_lengths, start_check = c("both", "yes", "no"), season_data_name, start_day, end_day, return_crops_table = TRUE, definition_props = TRUE){ + # Run checks is_station <- !missing(station) + start_check <- match.arg(start_check) if(missing(year)) stop("Year column must be specified.") if(!is_station) by <- year @@ -2233,17 +2231,26 @@ DataBook$set("public", "crops_definitions", function(data_name, year, station, r year_col <- self$get_columns_from_data(data_name, year) unique_year <- na.omit(unique(year_col)) - expand_list <- list(rain_totals, plant_lengths, plant_days, unique_year) - names_list <- c(rain_total_name, plant_length_name, plant_day_name, year) - + # creating our combinations + # if there's a station, we only want to consider the year-station combinations that actually exist if(is_station) { - station_col <- self$get_columns_from_data(data_name, station) - unique_station <- na.omit(unique(station_col)) - expand_list[[length(expand_list) + 1]] <- unique_station - names_list[length(names_list) + 1] <- station + expanded_df <- unique(self$get_data_frame(data_name) %>% dplyr::select(year, station)) + } else { + expanded_df <- unique(self$get_data_frame(data_name) %>% dplyr::select(year)) } - df <- setNames(expand.grid(expand_list), names_list) + # Set names + plant_day_name <- "plant_day" + plant_length_name <- "plant_length" + rain_total_name <- "rain_total" + + # Create all combinations of X and Y + condition_combinations <- expand.grid(rain_totals, plant_lengths, plant_days) + names_list <- c(rain_total_name, plant_length_name, plant_day_name) + condition_combinations <- setNames(condition_combinations, names_list) + + # Expand the df with xy_combinations + df <- merge(expanded_df, condition_combinations, by = NULL) daily_data <- self$get_data_frame(data_name) if(season_data_name != data_name) { @@ -2253,8 +2260,7 @@ DataBook$set("public", "crops_definitions", function(data_name, year, station, r vars <- c(season_by, start_day, end_day) season_data <- season_data %>% dplyr::select(!!! rlang::syms(vars)) df <- dplyr::left_join(df, season_data, by = join_by) - } - else { + } else { col_names <- c(by, start_day, end_day) season_data <- daily_data %>% dplyr::select(!!! rlang::syms(col_names)) %>% @@ -2264,133 +2270,148 @@ DataBook$set("public", "crops_definitions", function(data_name, year, station, r df <- dplyr::left_join(df, season_data, by = by) } - # Plant day condition - if(start_check %in% c("yes", "both")) { - df$plant_day_cond <- (df[[start_day]] <= df[[plant_day_name]]) - } - - # Plant length condition - df$length_cond <- (df[[plant_day_name]] + df[[plant_length_name]] <= df[[end_day]]) + ## Onto the calculation + proportion_df <- NULL + crops_def_table <- NULL + i <- 1 - # Rain total condition - # Create a column for the rain total actuals initialised with NA - df[["rain_total_actual"]] <- NA + calculate_rain_condition <- function(data){ + data <- data %>% dplyr::select(-rain_total_name) %>% unique() - # Vectorise the conditions for each - for (i in 1:nrow(df)) { - # Create a condition to filter the daily data based on the year, day, and plant day/length - ind <- daily_data[[year]] == df[[year]][i] & - daily_data[[day]] >= df[[plant_day_name]][i] & - daily_data[[day]] < (df[[plant_day_name]][i] + df[[plant_length_name]][i]) + for (i in 1:nrow(data)) { + # Create a condition to filter the daily data based on the year, day, and plant day/length + ind <- daily_data[[year]] == data[[year]][i] & + daily_data[[day]] >= data[[plant_day_name]][i] & + daily_data[[day]] < (data[[plant_day_name]][i] + data[[plant_length_name]][i]) - if (is_station) { - ind <- ind & (daily_data[[station]] == df[[station]][i]) - } + if (is_station) { + ind <- ind & (daily_data[[station]] == data[[station]][i]) + } - # Filter the daily data based on the condition - rain_values <- daily_data[[rain]][ind] + # Filter the daily data based on the condition + rain_values <- daily_data[[rain]][ind] - # Calculate the sum of rain values and check conditions - sum_rain <- sum(rain_values, na.rm = TRUE) + # Calculate the sum of rain values and check conditions + sum_rain <- sum(rain_values, na.rm = TRUE) - if (length(rain_values) + 1 < df[[plant_length_name]][i] || (anyNA(rain_values) && sum_rain < df[[rain_total_name]][i])) { - sum_rain <- NA - } + # Set as NA for certain cases: This anyNA is fixed later when we have the total_rainfall value of interest + if (anyNA(rain_values)) sum_rain <- -1 * sum_rain # as a way to tag the sum_rain value for later, we set as -ve value. + #&& sum_rain < data[[rain_total_name]][i]){ + if (length(rain_values) + 1 < data[[plant_length_name]][i]) sum_rain <- NA + if (all(is.na(rain_values))) sum_rain <- NA - # Assign the calculated sum to the respective row in the result dataframe - df[["rain_total_actual"]][i] <- sum_rain - } - df$rain_cond <- df[[rain_total_name]] <= df[["rain_total_actual"]] - - # All three conditions met - if (start_check == "yes"){ - df$overall_cond <- df$plant_day_cond & df$length_cond & df$rain_cond - } else if (start_check == "no"){ - df$overall_cond <- TRUE & df$length_cond & df$rain_cond - } else { - df$overall_cond_with_start <- df$plant_day_cond & df$length_cond & df$rain_cond - df$overall_cond_no_start <- TRUE & df$length_cond & df$rain_cond - } - - crops_name <- "crop_def" - crops_name <- next_default_item(prefix = crops_name, existing_names = self$get_data_names(), include_index = FALSE) - data_tables <- list(df) - names(data_tables) <- crops_name - self$import_data(data_tables = data_tables) + # Assign the calculated sum to the respective row in the result dataframe + data[["rain_total_actual"]][i] <- sum_rain + } + return(data) +} - if(season_data_name != data_name) { - crops_by <- season_by - names(crops_by) <- by - self$add_link(crops_name, season_data_name, crops_by, keyed_link_label) - } - - if(definition_props) { - calc_from <- list() - if(!missing(station)) calc_from[[length(calc_from) + 1]] <- station - calc_from[[length(calc_from) + 1]] <- plant_day_name - calc_from[[length(calc_from) + 1]] <- plant_length_name - calc_from[[length(calc_from) + 1]] <- rain_total_name - names(calc_from) <- rep(crops_name, length(calc_from)) - grouping <- instat_calculation$new(type = "by", calculated_from = calc_from) - - if (start_check %in% c("yes", "no")){ - prop_calc_from <- list("overall_cond") - names(prop_calc_from) <- crops_name - propor_table <- instat_calculation$new(function_exp="sum(overall_cond, na.rm = TRUE)/length(na.omit(overall_cond))", - save = 2, calculated_from = prop_calc_from, - manipulations = list(grouping), - type="summary", result_name = "prop_success", result_data_frame = "crop_prop") - prop_data_frame <- self$run_instat_calculation(propor_table, display = TRUE) - if(print_table) { - prop_data_frame$prop_success <- round(prop_data_frame$prop_success, 2) - prop_table_unstacked <- reshape2::dcast(formula = as.formula(paste(if(!missing(station)) paste(station, "+"), plant_length_name, "+", rain_total_name, "~", plant_day_name)), data = prop_data_frame, value.var = "prop_success") - if(!missing(station)) f <- interaction(prop_table_unstacked[[station]], prop_table_unstacked[[plant_length_name]], lex.order = TRUE) - else f <- prop_table_unstacked[[plant_length_name]] - prop_table_split <- split(prop_table_unstacked, f) - return(prop_table_split) - } - } else { - prop_calc_from_with_start <- list("overall_cond_with_start") - names(prop_calc_from_with_start) <- crops_name - propor_table_with_start <- instat_calculation$new(function_exp="sum(overall_cond_with_start, na.rm = TRUE)/length(na.omit(overall_cond_with_start))", - save = 2, calculated_from = prop_calc_from_with_start, - manipulations = list(grouping), - type="summary", result_name = "prop_success", result_data_frame = "crop_prop_with_start") - prop_data_frame_with_start <- self$run_instat_calculation(propor_table_with_start, display = TRUE) + # run by plant day and plant_length + for (day_i in plant_days){ + for (length_i in plant_lengths){ - prop_calc_from_no_start <- list("overall_cond_no_start") - names(prop_calc_from_no_start) <- crops_name - propor_table_no_start <- instat_calculation$new(function_exp="sum(overall_cond_no_start, na.rm = TRUE)/length(na.omit(overall_cond_no_start))", - save = 2, calculated_from = prop_calc_from_no_start, - manipulations = list(grouping), - type="summary", result_name = "prop_success", result_data_frame = "crop_prop_no_start") - prop_data_frame_no_start <- self$run_instat_calculation(propor_table_no_start, display = TRUE) + # for each plant length and plant day combination, calculate the total rainfall in that period. + filtered_data_1 <- df %>% filter(plant_day == day_i) %>% filter(plant_length == length_i) - if(print_table) { - prop_data_frame_with_start$prop_success <- round(prop_data_frame_with_start$prop_success, 2) - prop_table_unstacked_with_start <- reshape2::dcast(formula = as.formula(paste(if(!missing(station)) paste(station, "+"), plant_length_name, "+", rain_total_name, "~", plant_day_name)), data = prop_data_frame_with_start, value.var = "prop_success") - if(!missing(station)) f <- interaction(prop_table_unstacked_with_start[[station]], prop_table_unstacked_with_start[[plant_length_name]], lex.order = TRUE) - else f <- prop_table_unstacked_with_start[[plant_length_name]] - prop_table_split_with_start <- split(prop_table_unstacked_with_start, f) - - prop_data_frame_no_start$prop_success <- round(prop_data_frame_no_start$prop_success, 2) - prop_table_unstacked_no_start <- reshape2::dcast(formula = as.formula(paste(if(!missing(station)) paste(station, "+"), plant_length_name, "+", rain_total_name, "~", plant_day_name)), data = prop_data_frame_no_start, value.var = "prop_success") - if(!missing(station)) f <- interaction(prop_table_unstacked_no_start[[station]], prop_table_unstacked_no_start[[plant_length_name]], lex.order = TRUE) - else f <- prop_table_unstacked_no_start[[plant_length_name]] - prop_table_split_no_start <- split(prop_table_unstacked_no_start, f) + # Now run to get the rain conditions + filtered_data_1 <- calculate_rain_condition(data = filtered_data_1) + + # so: filtered_data_1 contains the total rainfall that occurred in that period for all the plant_day and plant_length combinations + # we now split by our different rain_total_actual conditions. + # we do this here to avoid calculating it multiple times. + for (rain_i in rain_totals){ + filtered_data <- filtered_data_1 %>% dplyr::mutate(rain_total = rain_i) + + # take the rows < 0 and run a check. We want to check + # if (anyNA(rain_values) && sum_rain < data[[rain_total_name]][i]) { sum_rain <- NA + # we do this here because we want to avoid running rain_total in calculate_rain_condition for efficiency purposes. + filtered_data <- filtered_data %>% + dplyr::mutate(rain_total_actual = ifelse(rain_total_actual < 0, ifelse(-1*rain_total_actual < rain_total, NA, -1*rain_total_actual), rain_total_actual)) + + if (!missing(station)) filtered_data <- filtered_data %>% dplyr::group_by(.data[[station]], .data[[year]]) + else filtered_data <- filtered_data %>% dplyr::group_by(.data[[year]]) - # Create an empty list to store the merged data - merged_list <- list() + filtered_data <- filtered_data %>% + # first add a column (T/F) that states that it is in the rainfall period or not. + dplyr::mutate(plant_day_cond = .data[[start_day]] <= plant_day, + length_cond = plant_day + plant_length <= .data[[end_day]], + rain_cond = rain_i <= rain_total_actual) %>% + dplyr::ungroup() + + if (start_check == "both"){ + + filtered_data <- filtered_data %>% + dplyr::mutate( + overall_cond_with_start = plant_day_cond & length_cond & rain_cond, + overall_cond_no_start = length_cond & rain_cond) + if (!missing(station)) filtered_data <- filtered_data %>% dplyr::group_by(.data[[station]]) + proportion_data <- filtered_data %>% + dplyr::summarise(prop_success_with_start = sum(overall_cond_with_start, na.rm = TRUE)/length(na.omit(overall_cond_with_start)), + prop_success_no_start = sum(overall_cond_no_start, na.rm = TRUE)/length(na.omit(overall_cond_no_start))) + } else { + filtered_data <- filtered_data %>% + dplyr::mutate( + overall_cond = case_when( + start_check == "yes" ~ plant_day_cond & length_cond & rain_cond, + start_check == "no" ~ TRUE & length_cond & rain_cond) + ) + if (!missing(station)) filtered_data <- filtered_data %>% dplyr::group_by(.data[[station]]) + proportion_data <- filtered_data %>% + dplyr::summarise(prop_success = sum(overall_cond, na.rm = TRUE)/length(na.omit(overall_cond))) + } - # Vectorize the addition of source indicators and merging of data frames - prop_table_split_with_start <- lapply(prop_table_split_with_start, function(df) { - df$source <- 'with start' - return(df) - }) + if (return_crops_table){ + crops_def_table[[i]] <- filtered_data %>% dplyr::mutate(rain_total = rain_i, + plant_length = length_i, + plant_day = day_i) + } + if (definition_props){ + proportion_df[[i]] <- proportion_data %>% dplyr::mutate(rain_total = rain_i, + plant_length = length_i, + plant_day = day_i) + } + i <- i + 1 } } } -}) + + if (!missing(station)) column_order <- c(station, plant_day_name, plant_length_name, rain_total_name) + else column_order <- c(plant_day_name, plant_length_name, rain_total_name) + + if (return_crops_table){ + # here we get crop_def and import it as a new DF + crops_def_table <- dplyr::bind_rows(crops_def_table) %>% dplyr::select(c(all_of(column_order), everything())) %>% dplyr::arrange(dplyr::across(dplyr::all_of(column_order))) + crops_name <- "crop_def" + crops_name <- next_default_item(prefix = crops_name, existing_names = self$get_data_names(), include_index = FALSE) + data_tables <- list(crops_def_table) + names(data_tables) <- crops_name + if(season_data_name != data_name) { + crops_by <- season_by + names(crops_by) <- by + self$add_link(crops_name, season_data_name, crops_by, keyed_link_label) + } + self$import_data(data_tables = data_tables) + } + if (definition_props){ + prop_data_frame <- dplyr::bind_rows(proportion_df) %>% dplyr::select(c(all_of(column_order), everything())) %>% dplyr::arrange(dplyr::across(dplyr::all_of(column_order))) + + prop_name <- "crop_prop" + prop_name <- next_default_item(prefix = prop_name, existing_names = self$get_data_names(), include_index = FALSE) + data_tables <- list(prop_data_frame) + names(data_tables) <- prop_name + self$import_data(data_tables = data_tables) + + # Add Link + if (return_crops_table){ + if (!missing(station)){ + self$add_link(from_data_frame = crops_name, to_data_frame = prop_name, link_pairs=c(station = station, rain_total = rain_total_name, plant_length = plant_length_name, plant_day = plant_day_name), type="keyed_link") + } else { + self$add_link(from_data_frame = crops_name, to_data_frame = prop_name, link_pairs=c(rain_total = rain_total_name, plant_length = plant_length_name, plant_day = plant_day_name), type="keyed_link") + } + } + } +} +) #' Converting grid (wide) format daily climatic data into tidy (long format) data #' @param x Input data frame diff --git a/instat/static/InstatObject/R/stand_alone_functions.R b/instat/static/InstatObject/R/stand_alone_functions.R index ef7ae16ee90..be519ef0b07 100644 --- a/instat/static/InstatObject/R/stand_alone_functions.R +++ b/instat/static/InstatObject/R/stand_alone_functions.R @@ -3429,4 +3429,21 @@ monitor_memory <- function() { time_operation <- function(expr) { timing <- system.time(expr) print(timing) -} \ No newline at end of file +} + +set_library_paths <- function(library_path) { + # Update the library paths + .libPaths(c(library_path, .libPaths())) + + # Check if there are more than 2 library paths + if (length(.libPaths()) > 2) { + # Get the current library paths + current_paths <- .libPaths() + + # Select valid indices (1 and 3) only if they exist + valid_indices <- c(1, 3)[c(1, 3) <= length(current_paths)] + + # Set the library paths to the valid ones + .libPaths(current_paths[valid_indices]) + } +} diff --git a/instat/translations/rInstatTranslations.db b/instat/translations/rInstatTranslations.db index 992781e4402..208404f14e2 100644 Binary files a/instat/translations/rInstatTranslations.db and b/instat/translations/rInstatTranslations.db differ diff --git a/instat/ucrColumnMetadata.Designer.vb b/instat/ucrColumnMetadata.Designer.vb index 23b0067bd9c..301a3b4519b 100644 --- a/instat/ucrColumnMetadata.Designer.vb +++ b/instat/ucrColumnMetadata.Designer.vb @@ -49,7 +49,6 @@ Partial Class ucrColumnMetadata Me.unhideSheet = New System.Windows.Forms.ToolStripMenuItem() Me.copySheet = New System.Windows.Forms.ToolStripMenuItem() Me.reorderSheet = New System.Windows.Forms.ToolStripMenuItem() - Me.viewSheet = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator() Me.mnuHelp2 = New System.Windows.Forms.ToolStripMenuItem() Me.propertiesContextMenuStrip = New System.Windows.Forms.ContextMenuStrip(Me.components) @@ -82,6 +81,7 @@ Partial Class ucrColumnMetadata Me.columnContextMenuStrip = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() Me.mnuHelp1 = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator() Me.cellContextMenuStrip.SuspendLayout() Me.statusColumnMenu.SuspendLayout() Me.propertiesContextMenuStrip.SuspendLayout() @@ -105,9 +105,9 @@ Partial Class ucrColumnMetadata 'statusColumnMenu ' Me.statusColumnMenu.ImageScalingSize = New System.Drawing.Size(20, 20) - Me.statusColumnMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.deleteDataFrame, Me.renameSheet, Me.mnuBottomAddComment, Me.hideSheet, Me.unhideSheet, Me.copySheet, Me.reorderSheet, Me.viewSheet, Me.ToolStripSeparator4, Me.mnuHelp2}) + Me.statusColumnMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.renameSheet, Me.reorderSheet, Me.copySheet, Me.deleteDataFrame, Me.hideSheet, Me.unhideSheet, Me.ToolStripSeparator5, Me.mnuBottomAddComment, Me.ToolStripSeparator4, Me.mnuHelp2}) Me.statusColumnMenu.Name = "statusColumnMenu" - Me.statusColumnMenu.Size = New System.Drawing.Size(181, 230) + Me.statusColumnMenu.Size = New System.Drawing.Size(181, 214) ' 'deleteDataFrame ' @@ -151,12 +151,6 @@ Partial Class ucrColumnMetadata Me.reorderSheet.Size = New System.Drawing.Size(180, 22) Me.reorderSheet.Text = "Reorder..." ' - 'viewSheet - ' - Me.viewSheet.Name = "viewSheet" - Me.viewSheet.Size = New System.Drawing.Size(180, 22) - Me.viewSheet.Text = "View Data Frame" - ' 'ToolStripSeparator4 ' Me.ToolStripSeparator4.Name = "ToolStripSeparator4" @@ -373,6 +367,11 @@ Partial Class ucrColumnMetadata Me.mnuHelp1.Size = New System.Drawing.Size(214, 22) Me.mnuHelp1.Text = "Help" ' + 'ToolStripSeparator5 + ' + Me.ToolStripSeparator5.Name = "ToolStripSeparator5" + Me.ToolStripSeparator5.Size = New System.Drawing.Size(177, 6) + ' 'ucrColumnMetadata ' Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) @@ -403,7 +402,6 @@ Partial Class ucrColumnMetadata Friend WithEvents unhideSheet As ToolStripMenuItem Friend WithEvents copySheet As ToolStripMenuItem Friend WithEvents reorderSheet As ToolStripMenuItem - Friend WithEvents viewSheet As ToolStripMenuItem Friend WithEvents mnuBottomAddComment As ToolStripMenuItem Friend WithEvents ucrLinuxGrid As ucrColumnMetadataLinuxGrid Friend WithEvents ucrReoGrid As ucrColumnMetadataReoGrid @@ -433,4 +431,5 @@ Partial Class ucrColumnMetadata Friend WithEvents mnuHelp1 As ToolStripMenuItem Friend WithEvents ToolStripSeparator4 As ToolStripSeparator Friend WithEvents mnuHelp2 As ToolStripMenuItem + Friend WithEvents ToolStripSeparator5 As ToolStripSeparator End Class diff --git a/instat/ucrColumnMetadata.vb b/instat/ucrColumnMetadata.vb index 2d102ea97c4..f7df8f6fc14 100644 --- a/instat/ucrColumnMetadata.vb +++ b/instat/ucrColumnMetadata.vb @@ -473,12 +473,6 @@ Public Class ucrColumnMetadata dlgCopyDataFrame.ShowDialog() End Sub - Private Sub viewSheet_Click(sender As Object, e As EventArgs) Handles viewSheet.Click - StartWait() - GetCurrentDataFrameFocus().clsPrepareFunctions.ViewDataFrame() - EndWait() - End Sub - Private Sub reorderSheet_Click(sender As Object, e As EventArgs) Handles reorderSheet.Click dlgReorderDataFrame.ShowDialog() End Sub diff --git a/instat/ucrDataFrameMetadata.Designer.vb b/instat/ucrDataFrameMetadata.Designer.vb index 94ceb188edc..371422d6c61 100644 --- a/instat/ucrDataFrameMetadata.Designer.vb +++ b/instat/ucrDataFrameMetadata.Designer.vb @@ -50,12 +50,12 @@ Partial Class ucrDataFrameMetadata Me.unhideSheet = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator11 = New System.Windows.Forms.ToolStripSeparator() Me.mnuAddComment = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuViewHTML = New System.Windows.Forms.ToolStripMenuItem() - Me.viewSheet = New System.Windows.Forms.ToolStripMenuItem() Me.lblHeaderDataFrameMetaData = New System.Windows.Forms.Label() Me.tlpTableContainer = New System.Windows.Forms.TableLayoutPanel() Me.ucrLinuxGrid = New instat.ucrDataframeMetadataLinuxGrid() Me.ucrReoGrid = New instat.ucrDataframeMetadataReoGrid() + Me.HelpToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() Me.cellContextMenuStrip.SuspendLayout() Me.rowRightClickMenu.SuspendLayout() Me.tlpTableContainer.SuspendLayout() @@ -77,71 +77,58 @@ Partial Class ucrDataFrameMetadata 'rowRightClickMenu ' Me.rowRightClickMenu.ImageScalingSize = New System.Drawing.Size(20, 20) - Me.rowRightClickMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.renameSheet, Me.reorderSheet, Me.copySheet, Me.deleteDataFrame, Me.hideSheet, Me.unhideSheet, Me.ToolStripSeparator11, Me.mnuAddComment, Me.mnuViewHTML, Me.viewSheet}) + Me.rowRightClickMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.renameSheet, Me.reorderSheet, Me.copySheet, Me.deleteDataFrame, Me.hideSheet, Me.unhideSheet, Me.ToolStripSeparator1, Me.mnuAddComment, Me.ToolStripSeparator11, Me.HelpToolStripMenuItem}) Me.rowRightClickMenu.Name = "statusColumnMenu" - Me.rowRightClickMenu.Size = New System.Drawing.Size(163, 208) + Me.rowRightClickMenu.Size = New System.Drawing.Size(181, 214) ' 'renameSheet ' Me.renameSheet.Name = "renameSheet" - Me.renameSheet.Size = New System.Drawing.Size(162, 22) + Me.renameSheet.Size = New System.Drawing.Size(180, 22) Me.renameSheet.Text = "Rename..." ' 'reorderSheet ' Me.reorderSheet.Enabled = False Me.reorderSheet.Name = "reorderSheet" - Me.reorderSheet.Size = New System.Drawing.Size(162, 22) + Me.reorderSheet.Size = New System.Drawing.Size(180, 22) Me.reorderSheet.Text = "Reorder..." ' 'copySheet ' Me.copySheet.Name = "copySheet" - Me.copySheet.Size = New System.Drawing.Size(162, 22) + Me.copySheet.Size = New System.Drawing.Size(180, 22) Me.copySheet.Text = "Copy..." ' 'deleteDataFrame ' Me.deleteDataFrame.Name = "deleteDataFrame" - Me.deleteDataFrame.Size = New System.Drawing.Size(162, 22) + Me.deleteDataFrame.Size = New System.Drawing.Size(180, 22) Me.deleteDataFrame.Text = "Delete..." ' 'hideSheet ' Me.hideSheet.Name = "hideSheet" - Me.hideSheet.Size = New System.Drawing.Size(162, 22) + Me.hideSheet.Size = New System.Drawing.Size(180, 22) Me.hideSheet.Text = "Hide" ' 'unhideSheet ' Me.unhideSheet.Name = "unhideSheet" - Me.unhideSheet.Size = New System.Drawing.Size(162, 22) + Me.unhideSheet.Size = New System.Drawing.Size(180, 22) Me.unhideSheet.Text = "Unhide..." ' 'ToolStripSeparator11 ' Me.ToolStripSeparator11.Name = "ToolStripSeparator11" - Me.ToolStripSeparator11.Size = New System.Drawing.Size(159, 6) + Me.ToolStripSeparator11.Size = New System.Drawing.Size(177, 6) ' 'mnuAddComment ' Me.mnuAddComment.Name = "mnuAddComment" - Me.mnuAddComment.Size = New System.Drawing.Size(162, 22) + Me.mnuAddComment.Size = New System.Drawing.Size(180, 22) Me.mnuAddComment.Text = "Add Comment..." ' - 'mnuViewHTML - ' - Me.mnuViewHTML.Enabled = False - Me.mnuViewHTML.Name = "mnuViewHTML" - Me.mnuViewHTML.Size = New System.Drawing.Size(162, 22) - Me.mnuViewHTML.Text = "View HTML" - ' - 'viewSheet - ' - Me.viewSheet.Name = "viewSheet" - Me.viewSheet.Size = New System.Drawing.Size(162, 22) - Me.viewSheet.Text = "View Data Frame" - ' 'lblHeaderDataFrameMetaData ' Me.lblHeaderDataFrameMetaData.BackColor = System.Drawing.Color.FromArgb(CType(CType(35, Byte), Integer), CType(CType(105, Byte), Integer), CType(CType(190, Byte), Integer)) @@ -192,6 +179,17 @@ Partial Class ucrDataFrameMetadata Me.ucrReoGrid.Size = New System.Drawing.Size(324, 381) Me.ucrReoGrid.TabIndex = 9 ' + 'HelpToolStripMenuItem + ' + Me.HelpToolStripMenuItem.Name = "HelpToolStripMenuItem" + Me.HelpToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.HelpToolStripMenuItem.Text = "Help" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(177, 6) + ' 'ucrDataFrameMetadata ' Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) @@ -217,10 +215,10 @@ Partial Class ucrDataFrameMetadata Friend WithEvents unhideSheet As ToolStripMenuItem Friend WithEvents copySheet As ToolStripMenuItem Friend WithEvents reorderSheet As ToolStripMenuItem - Friend WithEvents viewSheet As ToolStripMenuItem Friend WithEvents mnuAddComment As ToolStripMenuItem Friend WithEvents ucrLinuxGrid As ucrDataframeMetadataLinuxGrid Friend WithEvents ucrReoGrid As ucrDataframeMetadataReoGrid - Friend WithEvents mnuViewHTML As ToolStripMenuItem Friend WithEvents ToolStripSeparator11 As ToolStripSeparator + Friend WithEvents ToolStripSeparator1 As ToolStripSeparator + Friend WithEvents HelpToolStripMenuItem As ToolStripMenuItem End Class diff --git a/instat/ucrDataFrameMetadata.vb b/instat/ucrDataFrameMetadata.vb index 821ff413084..29d90deadfe 100644 --- a/instat/ucrDataFrameMetadata.vb +++ b/instat/ucrDataFrameMetadata.vb @@ -200,16 +200,6 @@ Public Class ucrDataFrameMetadata dlgCopyDataFrame.ShowDialog() End Sub - Private Sub viewSheet_Click(sender As Object, e As EventArgs) Handles viewSheet.Click - Dim strScript As String = "" - Dim strTemp As String - clsGetDataFrame.AddParameter("data_name", Chr(34) & GetSelectedDataframeNameFromSelectedRow() & Chr(34), iPosition:=0) - clsViewDataFrame.AddParameter("x", clsRFunctionParameter:=clsGetDataFrame, iPosition:=0) - clsGetDataFrame.SetAssignTo(GetSelectedDataframeNameFromSelectedRow) - strTemp = clsViewDataFrame.ToScript(strScript) - RunScriptFromDataFrameMetadata(strScript & strTemp, strComment:="Right click menu: View R Data Frame", bSeparateThread:=False) - End Sub - Private Sub reorderSheet_Click(sender As Object, e As EventArgs) Handles reorderSheet.Click dlgReorderDataFrame.ShowDialog() End Sub @@ -222,4 +212,8 @@ Public Class ucrDataFrameMetadata dlgAddComment.SetPosition(strDataFrame:=_grid.CurrentWorksheet.Name) dlgAddComment.ShowDialog() End Sub + + Private Sub HelpToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HelpToolStripMenuItem.Click + Help.ShowHelp(Me, frmMain.strStaticPath & "\" & frmMain.strHelpFilePath, HelpNavigator.TopicId, "544") + End Sub End Class \ No newline at end of file diff --git a/instat/ucrDataView.Designer.vb b/instat/ucrDataView.Designer.vb index 6f86b446e0f..b9cfb81ec5d 100644 --- a/instat/ucrDataView.Designer.vb +++ b/instat/ucrDataView.Designer.vb @@ -113,8 +113,6 @@ Partial Class ucrDataView Me.unhideSheet = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator12 = New System.Windows.Forms.ToolStripSeparator() Me.mnuBottomAddComment = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuViewHTML = New System.Windows.Forms.ToolStripMenuItem() - Me.ViewSheet = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator11 = New System.Windows.Forms.ToolStripSeparator() Me.mnuHelp3 = New System.Windows.Forms.ToolStripMenuItem() Me.lblHeaderDataView = New System.Windows.Forms.Label() @@ -150,9 +148,9 @@ Partial Class ucrDataView Me.lblRowNext = New System.Windows.Forms.Label() Me.lblColLast = New System.Windows.Forms.Label() Me.lblRowBack = New System.Windows.Forms.Label() - Me.ttGoToRowOrColPage = New System.Windows.Forms.ToolTip(Me.components) Me.ucrReoGrid = New instat.ucrDataViewReoGrid() Me.ucrLinuxGrid = New instat.ucrDataViewLinuxGrid() + Me.ttGoToRowOrColPage = New System.Windows.Forms.ToolTip(Me.components) Me.columnContextMenuStrip.SuspendLayout() Me.cellContextMenuStrip.SuspendLayout() Me.rowContextMenuStrip.SuspendLayout() @@ -171,159 +169,159 @@ Partial Class ucrDataView Me.columnContextMenuStrip.ImageScalingSize = New System.Drawing.Size(20, 20) Me.columnContextMenuStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuColumnRename, Me.mnuDuplicateColumn, Me.mnuReorderColumns, Me.mnuInsertColsBefore, Me.mnuInsertColsAfter, Me.mnuDeleteCol, Me.ToolStripSeparator13, Me.mnuEditCell2, Me.mnuDeleteCells2, Me.toolStripMenuItem2, Me.mnuConvertToFactor, Me.mnuCovertToOrderedFactors, Me.mnuConvertText, Me.mnuConvertToLogical, Me.mnuConvertVariate, Me.ToolStripSeparator1, Me.mnuLevelsLabels, Me.toolStripMenuItem21, Me.mnuSort, Me.mnuColumnAddComment, Me.mnuColumnFilterRows, Me.mnuColumnContextColumnSelection, Me.mnuColumnContextRemoveCurrentColumnSelection, Me.mnuClearColumnFilter, Me.ToolStripSeparator8, Me.mnuHelp}) Me.columnContextMenuStrip.Name = "columnContextMenuStrip" - Me.columnContextMenuStrip.Size = New System.Drawing.Size(293, 706) + Me.columnContextMenuStrip.Size = New System.Drawing.Size(215, 496) ' 'mnuColumnRename ' Me.mnuColumnRename.Name = "mnuColumnRename" - Me.mnuColumnRename.Size = New System.Drawing.Size(292, 32) + Me.mnuColumnRename.Size = New System.Drawing.Size(214, 22) Me.mnuColumnRename.Text = "Rename Column..." ' 'mnuDuplicateColumn ' Me.mnuDuplicateColumn.Name = "mnuDuplicateColumn" - Me.mnuDuplicateColumn.Size = New System.Drawing.Size(292, 32) + Me.mnuDuplicateColumn.Size = New System.Drawing.Size(214, 22) Me.mnuDuplicateColumn.Text = "Duplicate Column..." ' 'mnuReorderColumns ' Me.mnuReorderColumns.Name = "mnuReorderColumns" - Me.mnuReorderColumns.Size = New System.Drawing.Size(292, 32) + Me.mnuReorderColumns.Size = New System.Drawing.Size(214, 22) Me.mnuReorderColumns.Text = "Reorder Column(s)..." ' 'mnuInsertColsBefore ' Me.mnuInsertColsBefore.Name = "mnuInsertColsBefore" - Me.mnuInsertColsBefore.Size = New System.Drawing.Size(292, 32) + Me.mnuInsertColsBefore.Size = New System.Drawing.Size(214, 22) Me.mnuInsertColsBefore.Text = "Insert Column(s) Before" ' 'mnuInsertColsAfter ' Me.mnuInsertColsAfter.Name = "mnuInsertColsAfter" - Me.mnuInsertColsAfter.Size = New System.Drawing.Size(292, 32) + Me.mnuInsertColsAfter.Size = New System.Drawing.Size(214, 22) Me.mnuInsertColsAfter.Text = "Insert Column(s) After" ' 'mnuDeleteCol ' Me.mnuDeleteCol.Name = "mnuDeleteCol" - Me.mnuDeleteCol.Size = New System.Drawing.Size(292, 32) + Me.mnuDeleteCol.Size = New System.Drawing.Size(214, 22) Me.mnuDeleteCol.Text = "Delete Column(s)" ' 'ToolStripSeparator13 ' Me.ToolStripSeparator13.Name = "ToolStripSeparator13" - Me.ToolStripSeparator13.Size = New System.Drawing.Size(289, 6) + Me.ToolStripSeparator13.Size = New System.Drawing.Size(211, 6) ' 'mnuEditCell2 ' Me.mnuEditCell2.Enabled = False Me.mnuEditCell2.Name = "mnuEditCell2" - Me.mnuEditCell2.Size = New System.Drawing.Size(292, 32) + Me.mnuEditCell2.Size = New System.Drawing.Size(214, 22) Me.mnuEditCell2.Text = "Edit Cell..." ' 'mnuDeleteCells2 ' Me.mnuDeleteCells2.Enabled = False Me.mnuDeleteCells2.Name = "mnuDeleteCells2" - Me.mnuDeleteCells2.Size = New System.Drawing.Size(292, 32) + Me.mnuDeleteCells2.Size = New System.Drawing.Size(214, 22) Me.mnuDeleteCells2.Text = "Delete Cell(s)" ' 'toolStripMenuItem2 ' Me.toolStripMenuItem2.Name = "toolStripMenuItem2" - Me.toolStripMenuItem2.Size = New System.Drawing.Size(289, 6) + Me.toolStripMenuItem2.Size = New System.Drawing.Size(211, 6) ' 'mnuConvertToFactor ' Me.mnuConvertToFactor.Name = "mnuConvertToFactor" - Me.mnuConvertToFactor.Size = New System.Drawing.Size(292, 32) + Me.mnuConvertToFactor.Size = New System.Drawing.Size(214, 22) Me.mnuConvertToFactor.Text = "Convert to Factor" ' 'mnuCovertToOrderedFactors ' Me.mnuCovertToOrderedFactors.Name = "mnuCovertToOrderedFactors" - Me.mnuCovertToOrderedFactors.Size = New System.Drawing.Size(292, 32) + Me.mnuCovertToOrderedFactors.Size = New System.Drawing.Size(214, 22) Me.mnuCovertToOrderedFactors.Text = "Convert to Ordered Factor" ' 'mnuConvertText ' Me.mnuConvertText.Name = "mnuConvertText" - Me.mnuConvertText.Size = New System.Drawing.Size(292, 32) + Me.mnuConvertText.Size = New System.Drawing.Size(214, 22) Me.mnuConvertText.Text = "Convert to Character" ' 'mnuConvertToLogical ' Me.mnuConvertToLogical.Name = "mnuConvertToLogical" - Me.mnuConvertToLogical.Size = New System.Drawing.Size(292, 32) + Me.mnuConvertToLogical.Size = New System.Drawing.Size(214, 22) Me.mnuConvertToLogical.Text = "Convert to Logical" ' 'mnuConvertVariate ' Me.mnuConvertVariate.Name = "mnuConvertVariate" - Me.mnuConvertVariate.Size = New System.Drawing.Size(292, 32) + Me.mnuConvertVariate.Size = New System.Drawing.Size(214, 22) Me.mnuConvertVariate.Text = "Convert to Numeric" ' 'ToolStripSeparator1 ' Me.ToolStripSeparator1.Name = "ToolStripSeparator1" - Me.ToolStripSeparator1.Size = New System.Drawing.Size(289, 6) + Me.ToolStripSeparator1.Size = New System.Drawing.Size(211, 6) ' 'mnuLevelsLabels ' Me.mnuLevelsLabels.Name = "mnuLevelsLabels" - Me.mnuLevelsLabels.Size = New System.Drawing.Size(292, 32) + Me.mnuLevelsLabels.Size = New System.Drawing.Size(214, 22) Me.mnuLevelsLabels.Text = "Levels/Labels..." ' 'toolStripMenuItem21 ' Me.toolStripMenuItem21.Name = "toolStripMenuItem21" - Me.toolStripMenuItem21.Size = New System.Drawing.Size(289, 6) + Me.toolStripMenuItem21.Size = New System.Drawing.Size(211, 6) ' 'mnuSort ' Me.mnuSort.Name = "mnuSort" - Me.mnuSort.Size = New System.Drawing.Size(292, 32) + Me.mnuSort.Size = New System.Drawing.Size(214, 22) Me.mnuSort.Text = "Sort..." ' 'mnuColumnAddComment ' Me.mnuColumnAddComment.Name = "mnuColumnAddComment" - Me.mnuColumnAddComment.Size = New System.Drawing.Size(292, 32) + Me.mnuColumnAddComment.Size = New System.Drawing.Size(214, 22) Me.mnuColumnAddComment.Text = "Add Comment..." ' 'mnuColumnFilterRows ' Me.mnuColumnFilterRows.Name = "mnuColumnFilterRows" - Me.mnuColumnFilterRows.Size = New System.Drawing.Size(292, 32) + Me.mnuColumnFilterRows.Size = New System.Drawing.Size(214, 22) Me.mnuColumnFilterRows.Text = "Filter Rows..." ' 'mnuColumnContextColumnSelection ' Me.mnuColumnContextColumnSelection.Name = "mnuColumnContextColumnSelection" - Me.mnuColumnContextColumnSelection.Size = New System.Drawing.Size(292, 32) + Me.mnuColumnContextColumnSelection.Size = New System.Drawing.Size(214, 22) Me.mnuColumnContextColumnSelection.Text = "Select Columns..." ' 'mnuColumnContextRemoveCurrentColumnSelection ' Me.mnuColumnContextRemoveCurrentColumnSelection.Name = "mnuColumnContextRemoveCurrentColumnSelection" - Me.mnuColumnContextRemoveCurrentColumnSelection.Size = New System.Drawing.Size(292, 32) + Me.mnuColumnContextRemoveCurrentColumnSelection.Size = New System.Drawing.Size(214, 22) Me.mnuColumnContextRemoveCurrentColumnSelection.Text = "Remove Column Selection" ' 'mnuClearColumnFilter ' Me.mnuClearColumnFilter.Name = "mnuClearColumnFilter" - Me.mnuClearColumnFilter.Size = New System.Drawing.Size(292, 32) + Me.mnuClearColumnFilter.Size = New System.Drawing.Size(214, 22) Me.mnuClearColumnFilter.Text = "Remove Current Filter" ' 'ToolStripSeparator8 ' Me.ToolStripSeparator8.Name = "ToolStripSeparator8" - Me.ToolStripSeparator8.Size = New System.Drawing.Size(289, 6) + Me.ToolStripSeparator8.Size = New System.Drawing.Size(211, 6) ' 'mnuHelp ' Me.mnuHelp.Name = "mnuHelp" - Me.mnuHelp.Size = New System.Drawing.Size(292, 32) + Me.mnuHelp.Size = New System.Drawing.Size(214, 22) Me.mnuHelp.Text = "Help" ' 'cellContextMenuStrip @@ -331,146 +329,146 @@ Partial Class ucrDataView Me.cellContextMenuStrip.ImageScalingSize = New System.Drawing.Size(20, 20) Me.cellContextMenuStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuRenameColumn, Me.mnuDuplColumn, Me.mnuReorderColumn, Me.mnuDeleteCol2, Me.ToolStripSeparator14, Me.mnuEditCell, Me.mnuDeleteCells, Me.ToolStripSeparator5, Me.mnuConvertToFact, Me.mnuConvertToOrderedFactor, Me.mnuConvertToCharacter, Me.mnuConvertToLogic, Me.mnuConvertToNumeric, Me.ToolStripSeparator6, Me.mnuLabelsLevel, Me.ToolStripSeparator7, Me.mnuSorts, Me.mnuComment, Me.mnuFilterRows, Me.mnuCellContextColumnSelection, Me.mnuCellContextRemoveCurrentColumnSelection, Me.mnuRemoveCurrentFilters, Me.ToolStripSeparator9, Me.mnuHelp1}) Me.cellContextMenuStrip.Name = "cellContextMenuStrip" - Me.cellContextMenuStrip.Size = New System.Drawing.Size(293, 642) + Me.cellContextMenuStrip.Size = New System.Drawing.Size(215, 452) ' 'mnuRenameColumn ' Me.mnuRenameColumn.Name = "mnuRenameColumn" - Me.mnuRenameColumn.Size = New System.Drawing.Size(292, 32) + Me.mnuRenameColumn.Size = New System.Drawing.Size(214, 22) Me.mnuRenameColumn.Text = "Rename Column..." ' 'mnuDuplColumn ' Me.mnuDuplColumn.Name = "mnuDuplColumn" - Me.mnuDuplColumn.Size = New System.Drawing.Size(292, 32) + Me.mnuDuplColumn.Size = New System.Drawing.Size(214, 22) Me.mnuDuplColumn.Text = "Duplicate Column..." ' 'mnuReorderColumn ' Me.mnuReorderColumn.Name = "mnuReorderColumn" - Me.mnuReorderColumn.Size = New System.Drawing.Size(292, 32) + Me.mnuReorderColumn.Size = New System.Drawing.Size(214, 22) Me.mnuReorderColumn.Text = "Reorder Column(s)..." ' 'mnuDeleteCol2 ' Me.mnuDeleteCol2.Enabled = False Me.mnuDeleteCol2.Name = "mnuDeleteCol2" - Me.mnuDeleteCol2.Size = New System.Drawing.Size(292, 32) + Me.mnuDeleteCol2.Size = New System.Drawing.Size(214, 22) Me.mnuDeleteCol2.Text = "Delete Column(s)" ' 'ToolStripSeparator14 ' Me.ToolStripSeparator14.Name = "ToolStripSeparator14" - Me.ToolStripSeparator14.Size = New System.Drawing.Size(289, 6) + Me.ToolStripSeparator14.Size = New System.Drawing.Size(211, 6) ' 'mnuEditCell ' Me.mnuEditCell.Name = "mnuEditCell" - Me.mnuEditCell.Size = New System.Drawing.Size(292, 32) + Me.mnuEditCell.Size = New System.Drawing.Size(214, 22) Me.mnuEditCell.Text = "Edit Cell..." ' 'mnuDeleteCells ' Me.mnuDeleteCells.Name = "mnuDeleteCells" - Me.mnuDeleteCells.Size = New System.Drawing.Size(292, 32) + Me.mnuDeleteCells.Size = New System.Drawing.Size(214, 22) Me.mnuDeleteCells.Text = "Delete Cell(s)" ' 'ToolStripSeparator5 ' Me.ToolStripSeparator5.Name = "ToolStripSeparator5" - Me.ToolStripSeparator5.Size = New System.Drawing.Size(289, 6) + Me.ToolStripSeparator5.Size = New System.Drawing.Size(211, 6) ' 'mnuConvertToFact ' Me.mnuConvertToFact.Name = "mnuConvertToFact" - Me.mnuConvertToFact.Size = New System.Drawing.Size(292, 32) + Me.mnuConvertToFact.Size = New System.Drawing.Size(214, 22) Me.mnuConvertToFact.Text = "Convert to Factor" ' 'mnuConvertToOrderedFactor ' Me.mnuConvertToOrderedFactor.Name = "mnuConvertToOrderedFactor" - Me.mnuConvertToOrderedFactor.Size = New System.Drawing.Size(292, 32) + Me.mnuConvertToOrderedFactor.Size = New System.Drawing.Size(214, 22) Me.mnuConvertToOrderedFactor.Text = "Convert to Ordered Factor" ' 'mnuConvertToCharacter ' Me.mnuConvertToCharacter.Name = "mnuConvertToCharacter" - Me.mnuConvertToCharacter.Size = New System.Drawing.Size(292, 32) + Me.mnuConvertToCharacter.Size = New System.Drawing.Size(214, 22) Me.mnuConvertToCharacter.Text = "Convert to Character" ' 'mnuConvertToLogic ' Me.mnuConvertToLogic.Name = "mnuConvertToLogic" - Me.mnuConvertToLogic.Size = New System.Drawing.Size(292, 32) + Me.mnuConvertToLogic.Size = New System.Drawing.Size(214, 22) Me.mnuConvertToLogic.Text = "Convert to Logical" ' 'mnuConvertToNumeric ' Me.mnuConvertToNumeric.Name = "mnuConvertToNumeric" - Me.mnuConvertToNumeric.Size = New System.Drawing.Size(292, 32) + Me.mnuConvertToNumeric.Size = New System.Drawing.Size(214, 22) Me.mnuConvertToNumeric.Text = "Convert to Numeric" ' 'ToolStripSeparator6 ' Me.ToolStripSeparator6.Name = "ToolStripSeparator6" - Me.ToolStripSeparator6.Size = New System.Drawing.Size(289, 6) + Me.ToolStripSeparator6.Size = New System.Drawing.Size(211, 6) ' 'mnuLabelsLevel ' Me.mnuLabelsLevel.Name = "mnuLabelsLevel" - Me.mnuLabelsLevel.Size = New System.Drawing.Size(292, 32) + Me.mnuLabelsLevel.Size = New System.Drawing.Size(214, 22) Me.mnuLabelsLevel.Text = "Levels/Labels..." ' 'ToolStripSeparator7 ' Me.ToolStripSeparator7.Name = "ToolStripSeparator7" - Me.ToolStripSeparator7.Size = New System.Drawing.Size(289, 6) + Me.ToolStripSeparator7.Size = New System.Drawing.Size(211, 6) ' 'mnuSorts ' Me.mnuSorts.Name = "mnuSorts" - Me.mnuSorts.Size = New System.Drawing.Size(292, 32) + Me.mnuSorts.Size = New System.Drawing.Size(214, 22) Me.mnuSorts.Text = "Sort..." ' 'mnuComment ' Me.mnuComment.Name = "mnuComment" - Me.mnuComment.Size = New System.Drawing.Size(292, 32) + Me.mnuComment.Size = New System.Drawing.Size(214, 22) Me.mnuComment.Text = "Add Comment..." ' 'mnuFilterRows ' Me.mnuFilterRows.Name = "mnuFilterRows" - Me.mnuFilterRows.Size = New System.Drawing.Size(292, 32) + Me.mnuFilterRows.Size = New System.Drawing.Size(214, 22) Me.mnuFilterRows.Text = "Filter Rows..." ' 'mnuCellContextColumnSelection ' Me.mnuCellContextColumnSelection.Name = "mnuCellContextColumnSelection" - Me.mnuCellContextColumnSelection.Size = New System.Drawing.Size(292, 32) + Me.mnuCellContextColumnSelection.Size = New System.Drawing.Size(214, 22) Me.mnuCellContextColumnSelection.Text = "Select Columns..." ' 'mnuCellContextRemoveCurrentColumnSelection ' Me.mnuCellContextRemoveCurrentColumnSelection.Name = "mnuCellContextRemoveCurrentColumnSelection" - Me.mnuCellContextRemoveCurrentColumnSelection.Size = New System.Drawing.Size(292, 32) + Me.mnuCellContextRemoveCurrentColumnSelection.Size = New System.Drawing.Size(214, 22) Me.mnuCellContextRemoveCurrentColumnSelection.Text = "Remove Column Selection" ' 'mnuRemoveCurrentFilters ' Me.mnuRemoveCurrentFilters.Name = "mnuRemoveCurrentFilters" - Me.mnuRemoveCurrentFilters.Size = New System.Drawing.Size(292, 32) + Me.mnuRemoveCurrentFilters.Size = New System.Drawing.Size(214, 22) Me.mnuRemoveCurrentFilters.Text = "Remove Current Filter" ' 'ToolStripSeparator9 ' Me.ToolStripSeparator9.Name = "ToolStripSeparator9" - Me.ToolStripSeparator9.Size = New System.Drawing.Size(289, 6) + Me.ToolStripSeparator9.Size = New System.Drawing.Size(211, 6) ' 'mnuHelp1 ' Me.mnuHelp1.Name = "mnuHelp1" - Me.mnuHelp1.Size = New System.Drawing.Size(292, 32) + Me.mnuHelp1.Size = New System.Drawing.Size(214, 22) Me.mnuHelp1.Text = "Help" ' 'rowContextMenuStrip @@ -478,155 +476,142 @@ Partial Class ucrDataView Me.rowContextMenuStrip.ImageScalingSize = New System.Drawing.Size(20, 20) Me.rowContextMenuStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuInsertRowsBefore, Me.mnuInsertRowsAfter, Me.mnuDeleteRows, Me.ToolStripSeparator2, Me.mnuAddComment, Me.ToolStripSeparator4, Me.mnuFilter, Me.mnuRowContextColumnSelection, Me.mnuRowContextRemoveCurrentColumnSelection, Me.mnuRemoveCurrentFilter, Me.ToolStripSeparator10, Me.mnuHelp2}) Me.rowContextMenuStrip.Name = "columnContextMenuStrip" - Me.rowContextMenuStrip.Size = New System.Drawing.Size(292, 343) + Me.rowContextMenuStrip.Size = New System.Drawing.Size(215, 220) ' 'mnuInsertRowsBefore ' Me.mnuInsertRowsBefore.Name = "mnuInsertRowsBefore" - Me.mnuInsertRowsBefore.Size = New System.Drawing.Size(291, 32) + Me.mnuInsertRowsBefore.Size = New System.Drawing.Size(214, 22) Me.mnuInsertRowsBefore.Text = "Insert Row(s) Before" ' 'mnuInsertRowsAfter ' Me.mnuInsertRowsAfter.Name = "mnuInsertRowsAfter" - Me.mnuInsertRowsAfter.Size = New System.Drawing.Size(291, 32) + Me.mnuInsertRowsAfter.Size = New System.Drawing.Size(214, 22) Me.mnuInsertRowsAfter.Text = "Insert Row(s) After" ' 'mnuDeleteRows ' Me.mnuDeleteRows.Name = "mnuDeleteRows" - Me.mnuDeleteRows.Size = New System.Drawing.Size(291, 32) + Me.mnuDeleteRows.Size = New System.Drawing.Size(214, 22) Me.mnuDeleteRows.Text = "Delete Row(s)" ' 'ToolStripSeparator2 ' Me.ToolStripSeparator2.Name = "ToolStripSeparator2" - Me.ToolStripSeparator2.Size = New System.Drawing.Size(288, 6) + Me.ToolStripSeparator2.Size = New System.Drawing.Size(211, 6) ' 'mnuAddComment ' Me.mnuAddComment.Name = "mnuAddComment" - Me.mnuAddComment.Size = New System.Drawing.Size(291, 32) + Me.mnuAddComment.Size = New System.Drawing.Size(214, 22) Me.mnuAddComment.Text = "Add Comment..." ' 'ToolStripSeparator4 ' Me.ToolStripSeparator4.Name = "ToolStripSeparator4" - Me.ToolStripSeparator4.Size = New System.Drawing.Size(288, 6) + Me.ToolStripSeparator4.Size = New System.Drawing.Size(211, 6) ' 'mnuFilter ' Me.mnuFilter.Name = "mnuFilter" - Me.mnuFilter.Size = New System.Drawing.Size(291, 32) + Me.mnuFilter.Size = New System.Drawing.Size(214, 22) Me.mnuFilter.Tag = "Filter..." Me.mnuFilter.Text = "Filter Rows..." ' 'mnuRowContextColumnSelection ' Me.mnuRowContextColumnSelection.Name = "mnuRowContextColumnSelection" - Me.mnuRowContextColumnSelection.Size = New System.Drawing.Size(291, 32) + Me.mnuRowContextColumnSelection.Size = New System.Drawing.Size(214, 22) Me.mnuRowContextColumnSelection.Text = "Select Columns..." ' 'mnuRowContextRemoveCurrentColumnSelection ' Me.mnuRowContextRemoveCurrentColumnSelection.Name = "mnuRowContextRemoveCurrentColumnSelection" - Me.mnuRowContextRemoveCurrentColumnSelection.Size = New System.Drawing.Size(291, 32) + Me.mnuRowContextRemoveCurrentColumnSelection.Size = New System.Drawing.Size(214, 22) Me.mnuRowContextRemoveCurrentColumnSelection.Text = "Remove Column Selection" ' 'mnuRemoveCurrentFilter ' Me.mnuRemoveCurrentFilter.Name = "mnuRemoveCurrentFilter" - Me.mnuRemoveCurrentFilter.Size = New System.Drawing.Size(291, 32) + Me.mnuRemoveCurrentFilter.Size = New System.Drawing.Size(214, 22) Me.mnuRemoveCurrentFilter.Tag = "Remove_Current_Filter" Me.mnuRemoveCurrentFilter.Text = "Remove Current Filter" ' 'ToolStripSeparator10 ' Me.ToolStripSeparator10.Name = "ToolStripSeparator10" - Me.ToolStripSeparator10.Size = New System.Drawing.Size(288, 6) + Me.ToolStripSeparator10.Size = New System.Drawing.Size(211, 6) ' 'mnuHelp2 ' Me.mnuHelp2.Name = "mnuHelp2" - Me.mnuHelp2.Size = New System.Drawing.Size(291, 32) + Me.mnuHelp2.Size = New System.Drawing.Size(214, 22) Me.mnuHelp2.Text = "Help" ' 'statusColumnMenu ' Me.statusColumnMenu.ImageScalingSize = New System.Drawing.Size(20, 20) - Me.statusColumnMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.renameSheet, Me.reorderSheet, Me.CopySheet, Me.deleteDataFrame, Me.HideSheet, Me.unhideSheet, Me.ToolStripSeparator12, Me.mnuBottomAddComment, Me.mnuViewHTML, Me.ViewSheet, Me.ToolStripSeparator11, Me.mnuHelp3}) + Me.statusColumnMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.renameSheet, Me.reorderSheet, Me.CopySheet, Me.deleteDataFrame, Me.HideSheet, Me.unhideSheet, Me.ToolStripSeparator12, Me.mnuBottomAddComment, Me.ToolStripSeparator11, Me.mnuHelp3}) Me.statusColumnMenu.Name = "statusColumnMenu" - Me.statusColumnMenu.Size = New System.Drawing.Size(218, 336) + Me.statusColumnMenu.Size = New System.Drawing.Size(181, 214) ' 'renameSheet ' Me.renameSheet.Name = "renameSheet" - Me.renameSheet.Size = New System.Drawing.Size(217, 32) + Me.renameSheet.Size = New System.Drawing.Size(180, 22) Me.renameSheet.Text = "Rename..." ' 'reorderSheet ' Me.reorderSheet.Name = "reorderSheet" - Me.reorderSheet.Size = New System.Drawing.Size(217, 32) + Me.reorderSheet.Size = New System.Drawing.Size(180, 22) Me.reorderSheet.Text = "Reorder..." ' 'CopySheet ' Me.CopySheet.Name = "CopySheet" - Me.CopySheet.Size = New System.Drawing.Size(217, 32) + Me.CopySheet.Size = New System.Drawing.Size(180, 22) Me.CopySheet.Text = "Copy..." ' 'deleteDataFrame ' Me.deleteDataFrame.Name = "deleteDataFrame" - Me.deleteDataFrame.Size = New System.Drawing.Size(217, 32) + Me.deleteDataFrame.Size = New System.Drawing.Size(180, 22) Me.deleteDataFrame.Text = "Delete..." ' 'HideSheet ' Me.HideSheet.Name = "HideSheet" - Me.HideSheet.Size = New System.Drawing.Size(217, 32) + Me.HideSheet.Size = New System.Drawing.Size(180, 22) Me.HideSheet.Text = "Hide" ' 'unhideSheet ' Me.unhideSheet.Name = "unhideSheet" - Me.unhideSheet.Size = New System.Drawing.Size(217, 32) + Me.unhideSheet.Size = New System.Drawing.Size(180, 22) Me.unhideSheet.Text = "Unhide..." ' 'ToolStripSeparator12 ' Me.ToolStripSeparator12.Name = "ToolStripSeparator12" - Me.ToolStripSeparator12.Size = New System.Drawing.Size(214, 6) + Me.ToolStripSeparator12.Size = New System.Drawing.Size(177, 6) ' 'mnuBottomAddComment ' Me.mnuBottomAddComment.Name = "mnuBottomAddComment" - Me.mnuBottomAddComment.Size = New System.Drawing.Size(217, 32) + Me.mnuBottomAddComment.Size = New System.Drawing.Size(180, 22) Me.mnuBottomAddComment.Text = "Add Comment..." ' - 'mnuViewHTML - ' - Me.mnuViewHTML.Enabled = False - Me.mnuViewHTML.Name = "mnuViewHTML" - Me.mnuViewHTML.Size = New System.Drawing.Size(217, 32) - Me.mnuViewHTML.Text = "View HTML" - ' - 'ViewSheet - ' - Me.ViewSheet.Name = "ViewSheet" - Me.ViewSheet.Size = New System.Drawing.Size(217, 32) - Me.ViewSheet.Text = "View Data Frame" - ' 'ToolStripSeparator11 ' Me.ToolStripSeparator11.Name = "ToolStripSeparator11" - Me.ToolStripSeparator11.Size = New System.Drawing.Size(214, 6) + Me.ToolStripSeparator11.Size = New System.Drawing.Size(177, 6) ' 'mnuHelp3 ' Me.mnuHelp3.Name = "mnuHelp3" - Me.mnuHelp3.Size = New System.Drawing.Size(217, 32) + Me.mnuHelp3.Size = New System.Drawing.Size(180, 22) Me.mnuHelp3.Text = "Help" ' 'lblHeaderDataView @@ -636,10 +621,9 @@ Partial Class ucrDataView Me.lblHeaderDataView.Dock = System.Windows.Forms.DockStyle.Fill Me.lblHeaderDataView.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!) Me.lblHeaderDataView.ForeColor = System.Drawing.SystemColors.Control - Me.lblHeaderDataView.Location = New System.Drawing.Point(4, 0) - Me.lblHeaderDataView.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblHeaderDataView.Location = New System.Drawing.Point(3, 0) Me.lblHeaderDataView.Name = "lblHeaderDataView" - Me.lblHeaderDataView.Size = New System.Drawing.Size(1114, 30) + Me.lblHeaderDataView.Size = New System.Drawing.Size(742, 20) Me.lblHeaderDataView.TabIndex = 5 Me.lblHeaderDataView.Text = "Data View" Me.lblHeaderDataView.TextAlign = System.Drawing.ContentAlignment.MiddleCenter @@ -650,7 +634,7 @@ Partial Class ucrDataView Me.tlpTableContainer.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333!)) Me.tlpTableContainer.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333!)) Me.tlpTableContainer.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333!)) - Me.tlpTableContainer.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + Me.tlpTableContainer.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 13.0!)) Me.tlpTableContainer.Controls.Add(Me.panelSectionsAll, 0, 1) Me.tlpTableContainer.Controls.Add(Me.lblHeaderDataView, 0, 0) Me.tlpTableContainer.Controls.Add(Me.TblPanPageDisplay, 1, 2) @@ -658,13 +642,12 @@ Partial Class ucrDataView Me.tlpTableContainer.Controls.Add(Me.ucrLinuxGrid, 1, 1) Me.tlpTableContainer.Dock = System.Windows.Forms.DockStyle.Fill Me.tlpTableContainer.Location = New System.Drawing.Point(0, 0) - Me.tlpTableContainer.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.tlpTableContainer.Name = "tlpTableContainer" Me.tlpTableContainer.RowCount = 3 - Me.tlpTableContainer.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30.0!)) + Me.tlpTableContainer.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) Me.tlpTableContainer.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - Me.tlpTableContainer.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30.0!)) - Me.tlpTableContainer.Size = New System.Drawing.Size(1122, 722) + Me.tlpTableContainer.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + Me.tlpTableContainer.Size = New System.Drawing.Size(748, 481) Me.tlpTableContainer.TabIndex = 6 ' 'panelSectionsAll @@ -674,11 +657,10 @@ Partial Class ucrDataView Me.panelSectionsAll.Controls.Add(Me.panelSectionStart) Me.panelSectionsAll.Controls.Add(Me.panelSectionRecent) Me.panelSectionsAll.Dock = System.Windows.Forms.DockStyle.Fill - Me.panelSectionsAll.Location = New System.Drawing.Point(4, 34) - Me.panelSectionsAll.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.panelSectionsAll.Location = New System.Drawing.Point(3, 23) Me.panelSectionsAll.Name = "panelSectionsAll" Me.tlpTableContainer.SetRowSpan(Me.panelSectionsAll, 2) - Me.panelSectionsAll.Size = New System.Drawing.Size(366, 684) + Me.panelSectionsAll.Size = New System.Drawing.Size(243, 455) Me.panelSectionsAll.TabIndex = 9 ' 'panelSectionAdvanced @@ -687,10 +669,9 @@ Partial Class ucrDataView Me.panelSectionAdvanced.Controls.Add(Me.lblAdvanced) Me.panelSectionAdvanced.Controls.Add(Me.linkStartRestoreBackup) Me.panelSectionAdvanced.Controls.Add(Me.linkStartPasteScriptfromClipboard) - Me.panelSectionAdvanced.Location = New System.Drawing.Point(40, 618) - Me.panelSectionAdvanced.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.panelSectionAdvanced.Location = New System.Drawing.Point(27, 412) Me.panelSectionAdvanced.Name = "panelSectionAdvanced" - Me.panelSectionAdvanced.Size = New System.Drawing.Size(561, 124) + Me.panelSectionAdvanced.Size = New System.Drawing.Size(374, 83) Me.panelSectionAdvanced.TabIndex = 12 ' 'linkStartAddRPackage @@ -699,10 +680,9 @@ Partial Class ucrDataView Me.linkStartAddRPackage.AutoSize = True Me.linkStartAddRPackage.ImeMode = System.Windows.Forms.ImeMode.NoControl Me.linkStartAddRPackage.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline - Me.linkStartAddRPackage.Location = New System.Drawing.Point(8, 96) - Me.linkStartAddRPackage.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.linkStartAddRPackage.Location = New System.Drawing.Point(5, 64) Me.linkStartAddRPackage.Name = "linkStartAddRPackage" - Me.linkStartAddRPackage.Size = New System.Drawing.Size(275, 20) + Me.linkStartAddRPackage.Size = New System.Drawing.Size(187, 13) Me.linkStartAddRPackage.TabIndex = 6 Me.linkStartAddRPackage.TabStop = True Me.linkStartAddRPackage.Text = "Add R Package To R-Instat... (Online)" @@ -712,10 +692,9 @@ Partial Class ucrDataView Me.lblAdvanced.AutoSize = True Me.lblAdvanced.Font = New System.Drawing.Font("Microsoft Sans Serif", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblAdvanced.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.lblAdvanced.Location = New System.Drawing.Point(4, 6) - Me.lblAdvanced.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblAdvanced.Location = New System.Drawing.Point(3, 4) Me.lblAdvanced.Name = "lblAdvanced" - Me.lblAdvanced.Size = New System.Drawing.Size(159, 37) + Me.lblAdvanced.Size = New System.Drawing.Size(108, 25) Me.lblAdvanced.TabIndex = 0 Me.lblAdvanced.Text = "Advanced" ' @@ -725,10 +704,9 @@ Partial Class ucrDataView Me.linkStartRestoreBackup.AutoSize = True Me.linkStartRestoreBackup.ImeMode = System.Windows.Forms.ImeMode.NoControl Me.linkStartRestoreBackup.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline - Me.linkStartRestoreBackup.Location = New System.Drawing.Point(8, 70) - Me.linkStartRestoreBackup.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.linkStartRestoreBackup.Location = New System.Drawing.Point(5, 47) Me.linkStartRestoreBackup.Name = "linkStartRestoreBackup" - Me.linkStartRestoreBackup.Size = New System.Drawing.Size(216, 20) + Me.linkStartRestoreBackup.Size = New System.Drawing.Size(145, 13) Me.linkStartRestoreBackup.TabIndex = 4 Me.linkStartRestoreBackup.TabStop = True Me.linkStartRestoreBackup.Text = "Restore Data From Backup..." @@ -739,10 +717,9 @@ Partial Class ucrDataView Me.linkStartPasteScriptfromClipboard.AutoSize = True Me.linkStartPasteScriptfromClipboard.ImeMode = System.Windows.Forms.ImeMode.NoControl Me.linkStartPasteScriptfromClipboard.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline - Me.linkStartPasteScriptfromClipboard.Location = New System.Drawing.Point(8, 45) - Me.linkStartPasteScriptfromClipboard.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.linkStartPasteScriptfromClipboard.Location = New System.Drawing.Point(5, 30) Me.linkStartPasteScriptfromClipboard.Name = "linkStartPasteScriptfromClipboard" - Me.linkStartPasteScriptfromClipboard.Size = New System.Drawing.Size(207, 20) + Me.linkStartPasteScriptfromClipboard.Size = New System.Drawing.Size(137, 13) Me.linkStartPasteScriptfromClipboard.TabIndex = 5 Me.linkStartPasteScriptfromClipboard.TabStop = True Me.linkStartPasteScriptfromClipboard.Text = "Paste Script From Clipboard" @@ -753,10 +730,9 @@ Partial Class ucrDataView Me.panelSectionHelp.Controls.Add(Me.linkHelpGettingStarted) Me.panelSectionHelp.Controls.Add(Me.lblHelp) Me.panelSectionHelp.Controls.Add(Me.linkHelpRInstatResourcesSite) - Me.panelSectionHelp.Location = New System.Drawing.Point(42, 476) - Me.panelSectionHelp.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.panelSectionHelp.Location = New System.Drawing.Point(28, 317) Me.panelSectionHelp.Name = "panelSectionHelp" - Me.panelSectionHelp.Size = New System.Drawing.Size(561, 122) + Me.panelSectionHelp.Size = New System.Drawing.Size(374, 81) Me.panelSectionHelp.TabIndex = 12 ' 'linkHelpData @@ -765,10 +741,9 @@ Partial Class ucrDataView Me.linkHelpData.AutoSize = True Me.linkHelpData.ImeMode = System.Windows.Forms.ImeMode.NoControl Me.linkHelpData.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline - Me.linkHelpData.Location = New System.Drawing.Point(8, 70) - Me.linkHelpData.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.linkHelpData.Location = New System.Drawing.Point(5, 47) Me.linkHelpData.Name = "linkHelpData" - Me.linkHelpData.Size = New System.Drawing.Size(56, 20) + Me.linkHelpData.Size = New System.Drawing.Size(39, 13) Me.linkHelpData.TabIndex = 12 Me.linkHelpData.TabStop = True Me.linkHelpData.Text = "Data..." @@ -779,10 +754,9 @@ Partial Class ucrDataView Me.linkHelpGettingStarted.AutoSize = True Me.linkHelpGettingStarted.ImeMode = System.Windows.Forms.ImeMode.NoControl Me.linkHelpGettingStarted.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline - Me.linkHelpGettingStarted.Location = New System.Drawing.Point(8, 45) - Me.linkHelpGettingStarted.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.linkHelpGettingStarted.Location = New System.Drawing.Point(5, 30) Me.linkHelpGettingStarted.Name = "linkHelpGettingStarted" - Me.linkHelpGettingStarted.Size = New System.Drawing.Size(131, 20) + Me.linkHelpGettingStarted.Size = New System.Drawing.Size(87, 13) Me.linkHelpGettingStarted.TabIndex = 11 Me.linkHelpGettingStarted.TabStop = True Me.linkHelpGettingStarted.Text = "Getting Started..." @@ -792,10 +766,9 @@ Partial Class ucrDataView Me.lblHelp.AutoSize = True Me.lblHelp.Font = New System.Drawing.Font("Microsoft Sans Serif", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblHelp.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.lblHelp.Location = New System.Drawing.Point(4, 6) - Me.lblHelp.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblHelp.Location = New System.Drawing.Point(3, 4) Me.lblHelp.Name = "lblHelp" - Me.lblHelp.Size = New System.Drawing.Size(82, 37) + Me.lblHelp.Size = New System.Drawing.Size(56, 25) Me.lblHelp.TabIndex = 2 Me.lblHelp.Text = "Help" ' @@ -805,10 +778,9 @@ Partial Class ucrDataView Me.linkHelpRInstatResourcesSite.AutoSize = True Me.linkHelpRInstatResourcesSite.ImeMode = System.Windows.Forms.ImeMode.NoControl Me.linkHelpRInstatResourcesSite.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline - Me.linkHelpRInstatResourcesSite.Location = New System.Drawing.Point(8, 96) - Me.linkHelpRInstatResourcesSite.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.linkHelpRInstatResourcesSite.Location = New System.Drawing.Point(5, 64) Me.linkHelpRInstatResourcesSite.Name = "linkHelpRInstatResourcesSite" - Me.linkHelpRInstatResourcesSite.Size = New System.Drawing.Size(239, 20) + Me.linkHelpRInstatResourcesSite.Size = New System.Drawing.Size(158, 13) Me.linkHelpRInstatResourcesSite.TabIndex = 9 Me.linkHelpRInstatResourcesSite.TabStop = True Me.linkHelpRInstatResourcesSite.Text = "R-Instat Resources Site (Online)" @@ -820,10 +792,9 @@ Partial Class ucrDataView Me.panelSectionStart.Controls.Add(Me.linkStartNewDataFrame) Me.panelSectionStart.Controls.Add(Me.linkStartOpenFile) Me.panelSectionStart.Controls.Add(Me.linkStartOpenLibrary) - Me.panelSectionStart.Location = New System.Drawing.Point(42, 22) - Me.panelSectionStart.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.panelSectionStart.Location = New System.Drawing.Point(28, 15) Me.panelSectionStart.Name = "panelSectionStart" - Me.panelSectionStart.Size = New System.Drawing.Size(561, 150) + Me.panelSectionStart.Size = New System.Drawing.Size(374, 100) Me.panelSectionStart.TabIndex = 11 ' 'linkStartPasteData @@ -832,10 +803,9 @@ Partial Class ucrDataView Me.linkStartPasteData.AutoSize = True Me.linkStartPasteData.ImeMode = System.Windows.Forms.ImeMode.NoControl Me.linkStartPasteData.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline - Me.linkStartPasteData.Location = New System.Drawing.Point(8, 122) - Me.linkStartPasteData.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.linkStartPasteData.Location = New System.Drawing.Point(5, 81) Me.linkStartPasteData.Name = "linkStartPasteData" - Me.linkStartPasteData.Size = New System.Drawing.Size(213, 20) + Me.linkStartPasteData.Size = New System.Drawing.Size(142, 13) Me.linkStartPasteData.TabIndex = 7 Me.linkStartPasteData.TabStop = True Me.linkStartPasteData.Text = "Paste Data From Clipboard..." @@ -845,10 +815,9 @@ Partial Class ucrDataView Me.lblStart.AutoSize = True Me.lblStart.Font = New System.Drawing.Font("Microsoft Sans Serif", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblStart.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.lblStart.Location = New System.Drawing.Point(4, 6) - Me.lblStart.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblStart.Location = New System.Drawing.Point(3, 4) Me.lblStart.Name = "lblStart" - Me.lblStart.Size = New System.Drawing.Size(85, 37) + Me.lblStart.Size = New System.Drawing.Size(57, 25) Me.lblStart.TabIndex = 0 Me.lblStart.Text = "Start" ' @@ -858,10 +827,9 @@ Partial Class ucrDataView Me.linkStartNewDataFrame.AutoSize = True Me.linkStartNewDataFrame.ImeMode = System.Windows.Forms.ImeMode.NoControl Me.linkStartNewDataFrame.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline - Me.linkStartNewDataFrame.Location = New System.Drawing.Point(8, 45) - Me.linkStartNewDataFrame.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.linkStartNewDataFrame.Location = New System.Drawing.Point(5, 30) Me.linkStartNewDataFrame.Name = "linkStartNewDataFrame" - Me.linkStartNewDataFrame.Size = New System.Drawing.Size(141, 20) + Me.linkStartNewDataFrame.Size = New System.Drawing.Size(96, 13) Me.linkStartNewDataFrame.TabIndex = 3 Me.linkStartNewDataFrame.TabStop = True Me.linkStartNewDataFrame.Text = "New Data Frame..." @@ -872,10 +840,9 @@ Partial Class ucrDataView Me.linkStartOpenFile.AutoSize = True Me.linkStartOpenFile.ImeMode = System.Windows.Forms.ImeMode.NoControl Me.linkStartOpenFile.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline - Me.linkStartOpenFile.Location = New System.Drawing.Point(8, 70) - Me.linkStartOpenFile.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.linkStartOpenFile.Location = New System.Drawing.Point(5, 47) Me.linkStartOpenFile.Name = "linkStartOpenFile" - Me.linkStartOpenFile.Size = New System.Drawing.Size(137, 20) + Me.linkStartOpenFile.Size = New System.Drawing.Size(90, 13) Me.linkStartOpenFile.TabIndex = 4 Me.linkStartOpenFile.TabStop = True Me.linkStartOpenFile.Text = "Import From File..." @@ -886,10 +853,9 @@ Partial Class ucrDataView Me.linkStartOpenLibrary.AutoSize = True Me.linkStartOpenLibrary.ImeMode = System.Windows.Forms.ImeMode.NoControl Me.linkStartOpenLibrary.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline - Me.linkStartOpenLibrary.Location = New System.Drawing.Point(8, 96) - Me.linkStartOpenLibrary.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.linkStartOpenLibrary.Location = New System.Drawing.Point(5, 64) Me.linkStartOpenLibrary.Name = "linkStartOpenLibrary" - Me.linkStartOpenLibrary.Size = New System.Drawing.Size(159, 20) + Me.linkStartOpenLibrary.Size = New System.Drawing.Size(105, 13) Me.linkStartOpenLibrary.TabIndex = 5 Me.linkStartOpenLibrary.TabStop = True Me.linkStartOpenLibrary.Text = "Import From Library..." @@ -900,10 +866,9 @@ Partial Class ucrDataView Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.panelSectionRecent.Controls.Add(Me.lblRecent) Me.panelSectionRecent.Controls.Add(Me.panelRecentMenuItems) - Me.panelSectionRecent.Location = New System.Drawing.Point(42, 186) - Me.panelSectionRecent.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.panelSectionRecent.Location = New System.Drawing.Point(28, 124) Me.panelSectionRecent.Name = "panelSectionRecent" - Me.panelSectionRecent.Size = New System.Drawing.Size(270, 279) + Me.panelSectionRecent.Size = New System.Drawing.Size(179, 186) Me.panelSectionRecent.TabIndex = 13 ' 'lblRecent @@ -911,10 +876,9 @@ Partial Class ucrDataView Me.lblRecent.AutoSize = True Me.lblRecent.Font = New System.Drawing.Font("Microsoft Sans Serif", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblRecent.ImeMode = System.Windows.Forms.ImeMode.NoControl - Me.lblRecent.Location = New System.Drawing.Point(4, 6) - Me.lblRecent.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblRecent.Location = New System.Drawing.Point(3, 4) Me.lblRecent.Name = "lblRecent" - Me.lblRecent.Size = New System.Drawing.Size(116, 37) + Me.lblRecent.Size = New System.Drawing.Size(80, 25) Me.lblRecent.TabIndex = 1 Me.lblRecent.Text = "Recent" ' @@ -923,10 +887,9 @@ Partial Class ucrDataView Me.panelRecentMenuItems.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.panelRecentMenuItems.AutoScroll = True - Me.panelRecentMenuItems.Location = New System.Drawing.Point(8, 45) - Me.panelRecentMenuItems.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) + Me.panelRecentMenuItems.Location = New System.Drawing.Point(5, 30) Me.panelRecentMenuItems.Name = "panelRecentMenuItems" - Me.panelRecentMenuItems.Size = New System.Drawing.Size(240, 207) + Me.panelRecentMenuItems.Size = New System.Drawing.Size(159, 138) Me.panelRecentMenuItems.TabIndex = 6 ' 'TblPanPageDisplay @@ -958,22 +921,21 @@ Partial Class ucrDataView Me.TblPanPageDisplay.Controls.Add(Me.lblRowBack, 3, 0) Me.TblPanPageDisplay.Dock = System.Windows.Forms.DockStyle.Fill Me.TblPanPageDisplay.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.TblPanPageDisplay.Location = New System.Drawing.Point(374, 692) + Me.TblPanPageDisplay.Location = New System.Drawing.Point(249, 461) Me.TblPanPageDisplay.Margin = New System.Windows.Forms.Padding(0) Me.TblPanPageDisplay.Name = "TblPanPageDisplay" Me.TblPanPageDisplay.RowCount = 1 Me.TblPanPageDisplay.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - Me.TblPanPageDisplay.Size = New System.Drawing.Size(748, 30) + Me.TblPanPageDisplay.Size = New System.Drawing.Size(499, 20) Me.TblPanPageDisplay.TabIndex = 8 ' 'lblColFirst ' Me.lblColFirst.AutoSize = True Me.lblColFirst.Dock = System.Windows.Forms.DockStyle.Fill - Me.lblColFirst.Location = New System.Drawing.Point(472, 0) - Me.lblColFirst.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblColFirst.Location = New System.Drawing.Point(315, 0) Me.lblColFirst.Name = "lblColFirst" - Me.lblColFirst.Size = New System.Drawing.Size(26, 30) + Me.lblColFirst.Size = New System.Drawing.Size(18, 20) Me.lblColFirst.TabIndex = 15 Me.lblColFirst.Text = "«" Me.lblColFirst.TextAlign = System.Drawing.ContentAlignment.MiddleCenter @@ -982,10 +944,9 @@ Partial Class ucrDataView ' Me.lblColDisplay.AutoSize = True Me.lblColDisplay.Dock = System.Windows.Forms.DockStyle.Fill - Me.lblColDisplay.Location = New System.Drawing.Point(378, 0) - Me.lblColDisplay.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblColDisplay.Location = New System.Drawing.Point(252, 0) Me.lblColDisplay.Name = "lblColDisplay" - Me.lblColDisplay.Size = New System.Drawing.Size(86, 30) + Me.lblColDisplay.Size = New System.Drawing.Size(57, 20) Me.lblColDisplay.TabIndex = 14 Me.lblColDisplay.Text = "Label1" Me.lblColDisplay.TextAlign = System.Drawing.ContentAlignment.MiddleCenter @@ -994,10 +955,9 @@ Partial Class ucrDataView ' Me.lblColNext.AutoSize = True Me.lblColNext.Dock = System.Windows.Forms.DockStyle.Fill - Me.lblColNext.Location = New System.Drawing.Point(541, 0) - Me.lblColNext.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblColNext.Location = New System.Drawing.Point(363, 0) Me.lblColNext.Name = "lblColNext" - Me.lblColNext.Size = New System.Drawing.Size(27, 30) + Me.lblColNext.Size = New System.Drawing.Size(18, 20) Me.lblColNext.TabIndex = 13 Me.lblColNext.Text = ">" Me.lblColNext.TextAlign = System.Drawing.ContentAlignment.MiddleCenter @@ -1006,10 +966,9 @@ Partial Class ucrDataView ' Me.lblColBack.AutoSize = True Me.lblColBack.Dock = System.Windows.Forms.DockStyle.Fill - Me.lblColBack.Location = New System.Drawing.Point(506, 0) - Me.lblColBack.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblColBack.Location = New System.Drawing.Point(339, 0) Me.lblColBack.Name = "lblColBack" - Me.lblColBack.Size = New System.Drawing.Size(27, 30) + Me.lblColBack.Size = New System.Drawing.Size(18, 20) Me.lblColBack.TabIndex = 12 Me.lblColBack.Text = "<" Me.lblColBack.TextAlign = System.Drawing.ContentAlignment.MiddleCenter @@ -1018,10 +977,9 @@ Partial Class ucrDataView ' Me.lblRowLast.AutoSize = True Me.lblRowLast.Dock = System.Windows.Forms.DockStyle.Fill - Me.lblRowLast.Location = New System.Drawing.Point(344, 0) - Me.lblRowLast.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblRowLast.Location = New System.Drawing.Point(228, 0) Me.lblRowLast.Name = "lblRowLast" - Me.lblRowLast.Size = New System.Drawing.Size(26, 30) + Me.lblRowLast.Size = New System.Drawing.Size(18, 20) Me.lblRowLast.TabIndex = 11 Me.lblRowLast.Text = "»" Me.lblRowLast.TextAlign = System.Drawing.ContentAlignment.MiddleCenter @@ -1030,10 +988,9 @@ Partial Class ucrDataView ' Me.lblRowFirst.AutoSize = True Me.lblRowFirst.Dock = System.Windows.Forms.DockStyle.Fill - Me.lblRowFirst.Location = New System.Drawing.Point(240, 0) - Me.lblRowFirst.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblRowFirst.Location = New System.Drawing.Point(156, 0) Me.lblRowFirst.Name = "lblRowFirst" - Me.lblRowFirst.Size = New System.Drawing.Size(26, 30) + Me.lblRowFirst.Size = New System.Drawing.Size(18, 20) Me.lblRowFirst.TabIndex = 10 Me.lblRowFirst.Text = "«" Me.lblRowFirst.TextAlign = System.Drawing.ContentAlignment.MiddleCenter @@ -1043,10 +1000,9 @@ Partial Class ucrDataView Me.lblRowDisplay.AutoSize = True Me.lblRowDisplay.Dock = System.Windows.Forms.DockStyle.Fill Me.lblRowDisplay.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.lblRowDisplay.Location = New System.Drawing.Point(146, 0) - Me.lblRowDisplay.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblRowDisplay.Location = New System.Drawing.Point(93, 0) Me.lblRowDisplay.Name = "lblRowDisplay" - Me.lblRowDisplay.Size = New System.Drawing.Size(86, 30) + Me.lblRowDisplay.Size = New System.Drawing.Size(57, 20) Me.lblRowDisplay.TabIndex = 9 Me.lblRowDisplay.Text = "Label1" Me.lblRowDisplay.TextAlign = System.Drawing.ContentAlignment.MiddleRight @@ -1055,10 +1011,9 @@ Partial Class ucrDataView ' Me.lblRowNext.AutoSize = True Me.lblRowNext.Dock = System.Windows.Forms.DockStyle.Fill - Me.lblRowNext.Location = New System.Drawing.Point(309, 0) - Me.lblRowNext.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblRowNext.Location = New System.Drawing.Point(204, 0) Me.lblRowNext.Name = "lblRowNext" - Me.lblRowNext.Size = New System.Drawing.Size(27, 30) + Me.lblRowNext.Size = New System.Drawing.Size(18, 20) Me.lblRowNext.TabIndex = 8 Me.lblRowNext.Text = ">" Me.lblRowNext.TextAlign = System.Drawing.ContentAlignment.MiddleCenter @@ -1067,10 +1022,9 @@ Partial Class ucrDataView ' Me.lblColLast.AutoSize = True Me.lblColLast.Dock = System.Windows.Forms.DockStyle.Fill - Me.lblColLast.Location = New System.Drawing.Point(576, 0) - Me.lblColLast.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblColLast.Location = New System.Drawing.Point(387, 0) Me.lblColLast.Name = "lblColLast" - Me.lblColLast.Size = New System.Drawing.Size(26, 30) + Me.lblColLast.Size = New System.Drawing.Size(18, 20) Me.lblColLast.TabIndex = 7 Me.lblColLast.Text = "»" Me.lblColLast.TextAlign = System.Drawing.ContentAlignment.MiddleCenter @@ -1079,10 +1033,9 @@ Partial Class ucrDataView ' Me.lblRowBack.AutoSize = True Me.lblRowBack.Dock = System.Windows.Forms.DockStyle.Fill - Me.lblRowBack.Location = New System.Drawing.Point(274, 0) - Me.lblRowBack.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblRowBack.Location = New System.Drawing.Point(180, 0) Me.lblRowBack.Name = "lblRowBack" - Me.lblRowBack.Size = New System.Drawing.Size(27, 30) + Me.lblRowBack.Size = New System.Drawing.Size(18, 20) Me.lblRowBack.TabIndex = 5 Me.lblRowBack.Text = "<" Me.lblRowBack.TextAlign = System.Drawing.ContentAlignment.MiddleCenter @@ -1090,28 +1043,29 @@ Partial Class ucrDataView 'ucrReoGrid ' Me.ucrReoGrid.Dock = System.Windows.Forms.DockStyle.Fill - Me.ucrReoGrid.Location = New System.Drawing.Point(751, 33) + Me.ucrReoGrid.Location = New System.Drawing.Point(499, 21) + Me.ucrReoGrid.Margin = New System.Windows.Forms.Padding(1) Me.ucrReoGrid.Name = "ucrReoGrid" - Me.ucrReoGrid.Size = New System.Drawing.Size(368, 656) + Me.ucrReoGrid.Size = New System.Drawing.Size(248, 439) Me.ucrReoGrid.TabIndex = 12 ' 'ucrLinuxGrid ' Me.ucrLinuxGrid.Dock = System.Windows.Forms.DockStyle.Fill - Me.ucrLinuxGrid.Location = New System.Drawing.Point(377, 33) + Me.ucrLinuxGrid.Location = New System.Drawing.Point(250, 21) + Me.ucrLinuxGrid.Margin = New System.Windows.Forms.Padding(1) Me.ucrLinuxGrid.Name = "ucrLinuxGrid" - Me.ucrLinuxGrid.Size = New System.Drawing.Size(368, 656) + Me.ucrLinuxGrid.Size = New System.Drawing.Size(247, 439) Me.ucrLinuxGrid.TabIndex = 13 ' 'ucrDataView ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(144.0!, 144.0!) + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi Me.AutoSize = True Me.Controls.Add(Me.tlpTableContainer) - Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.Name = "ucrDataView" - Me.Size = New System.Drawing.Size(1122, 722) + Me.Size = New System.Drawing.Size(748, 481) Me.Tag = "Data_View" Me.columnContextMenuStrip.ResumeLayout(False) Me.cellContextMenuStrip.ResumeLayout(False) @@ -1161,7 +1115,6 @@ Partial Class ucrDataView Friend WithEvents mnuFilter As ToolStripMenuItem Friend WithEvents mnuRemoveCurrentFilter As ToolStripMenuItem Friend WithEvents mnuSort As ToolStripMenuItem - Friend WithEvents ViewSheet As ToolStripMenuItem Friend WithEvents mnuCovertToOrderedFactors As ToolStripMenuItem Friend WithEvents mnuDuplicateColumn As ToolStripMenuItem Friend WithEvents mnuAddComment As ToolStripMenuItem @@ -1234,7 +1187,6 @@ Partial Class ucrDataView Friend WithEvents ToolStripSeparator11 As ToolStripSeparator Friend WithEvents mnuHelp3 As ToolStripMenuItem Friend WithEvents ttGoToRowOrColPage As ToolTip - Friend WithEvents mnuViewHTML As ToolStripMenuItem Friend WithEvents ToolStripSeparator12 As ToolStripSeparator Private WithEvents ToolStripSeparator13 As ToolStripSeparator Friend WithEvents mnuEditCell2 As ToolStripMenuItem diff --git a/instat/ucrDataView.vb b/instat/ucrDataView.vb index 109af059b47..8a29fd41628 100644 --- a/instat/ucrDataView.vb +++ b/instat/ucrDataView.vb @@ -23,6 +23,7 @@ Public Class ucrDataView Private _clsDataBook As clsDataBook Private _grid As IDataViewGrid Private bOnlyUpdateOneCell As Boolean = False + Private _hasChanged As Boolean Public WriteOnly Property DataBook() As clsDataBook Set(value As clsDataBook) @@ -157,6 +158,7 @@ Public Class ucrDataView RefreshDisplayInformation() End If End If + _hasChanged = True EnableDisableUndoMenu() _grid.Focus() End Sub @@ -185,6 +187,23 @@ Public Class ucrDataView Return If(_grid.CurrentWorksheet Is Nothing, Nothing, _grid.CurrentWorksheet.Name) End Function + Public Property HasDataChanged() As Boolean + Get + Dim currentDataFrame = GetCurrentDataFrameFocus() + If currentDataFrame IsNot Nothing AndAlso currentDataFrame.clsVisibleDataFramePage IsNot Nothing Then + Return currentDataFrame.clsVisibleDataFramePage.HasDataChangedForAutoSave + End If + Return False ' Or a default value + End Get + Set(ByVal value As Boolean) + Dim currentDataFrame = GetCurrentDataFrameFocus() + If currentDataFrame IsNot Nothing AndAlso currentDataFrame.clsVisibleDataFramePage IsNot Nothing Then + currentDataFrame.clsVisibleDataFramePage.HasDataChangedForAutoSave = value + End If + ' Optionally handle the case where currentDataFrame is Nothing + End Set + End Property + Private Sub mnuDeleteCol_Click(sender As Object, e As EventArgs) Handles mnuDeleteCol.Click If GetSelectedColumns.Count = GetCurrentDataFrameFocus()?.iTotalColumnCount Then MsgBox("Cannot delete all visible columns." & Environment.NewLine & "Use Prepare > Data Object > Delete Data Frame if you wish to delete the data.", MsgBoxStyle.Information, "Cannot Delete All Columns") @@ -466,6 +485,10 @@ Public Class ucrDataView End If End Sub + Public Function IsColumnSelectionApplied() As Boolean + Return GetCurrentDataFrameFocus().clsFilterOrColumnSelection.bColumnSelectionApplied + End Function + Private Function GetSelectedColumns() As List(Of clsColumnHeaderDisplay) Return _grid.GetSelectedColumns() End Function @@ -506,12 +529,12 @@ Public Class ucrDataView Return GetSelectedRows.LastOrDefault() End Function - Private Sub StartWait() + Public Sub StartWait() Cursor = Cursors.WaitCursor _grid.bEnabled = False End Sub - Private Sub EndWait() + Public Sub EndWait() _grid.bEnabled = True Cursor = Cursors.Default End Sub @@ -579,12 +602,6 @@ Public Class ucrDataView EndWait() End Sub - Private Sub ViewSheet_Click(sender As Object, e As EventArgs) Handles ViewSheet.Click - StartWait() - GetCurrentDataFrameFocus().clsPrepareFunctions.ViewDataFrame() - EndWait() - End Sub - Private Sub mnuCovertToOrderedFactors_Click(sender As Object, e As EventArgs) Handles mnuCovertToOrderedFactors.Click StartWait() GetCurrentDataFrameFocus().clsPrepareFunctions.ConvertToOrderedFactor(GetSelectedColumnNames()) @@ -694,7 +711,20 @@ Public Class ucrDataView Else Dim bCheckLabels As Boolean = GetCurrentDataFrameFocus().clsPrepareFunctions.CheckHasLabels(strColumn) If bCheckLabels Then - GetCurrentDataFrameFocus().clsPrepareFunctions.ConvertToNumeric(strColumn, True) + frmConvertToNumeric.SetDataFrameName(GetCurrentDataFrameFocus().strName) + frmConvertToNumeric.SetColumnName(strColumn) + frmConvertToNumeric.CheckLabels(bCheckLabels) + frmConvertToNumeric.SetNonNumeric(iNonNumericValues) + frmConvertToNumeric.ShowDialog() + ' Yes for "normal" convert and No for "labelled" convert + Select Case frmConvertToNumeric.DialogResult + Case DialogResult.Yes + GetCurrentDataFrameFocus().clsPrepareFunctions.ConvertToNumeric(strColumn, True) + Case DialogResult.No + GetCurrentDataFrameFocus().clsPrepareFunctions.ConvertToNumeric(strColumn, False) + Case DialogResult.Cancel + Continue For + End Select Else frmConvertToNumeric.SetDataFrameName(GetCurrentDataFrameFocus().strName) frmConvertToNumeric.SetColumnName(strColumn) diff --git a/instat/ucrReceiverMultiple.vb b/instat/ucrReceiverMultiple.vb index 5206b0554cd..889f3434ca3 100644 --- a/instat/ucrReceiverMultiple.vb +++ b/instat/ucrReceiverMultiple.vb @@ -47,11 +47,19 @@ Public Class ucrReceiverMultiple 'first eliminate all items that already exist 'this improves perfomance significantly for wide data sets For Each kvpTempItem As KeyValuePair(Of String, String) In lstItems - If lstSelectedVariables.FindItemWithText(kvpTempItem.Value) Is Nothing Then + Dim isMatchFound As Boolean = False + For Each item As ListViewItem In lstSelectedVariables.Items + If item.Text.Equals(kvpTempItem.Value, StringComparison.Ordinal) Then + isMatchFound = True + Exit For + End If + Next + If Not isMatchFound Then lstActualItemsToAdd.Add(kvpTempItem) End If Next + If lstActualItemsToAdd.Count = 0 Then Exit Sub End If @@ -411,7 +419,7 @@ Public Class ucrReceiverMultiple If bIsCategoricalNumeric Then ' logical can be considered as both categorical or numeric so should be dealt with on individual dialogs For i As Integer = 0 To strDataTypes.Count - 1 - If strDataTypes(i).Contains("factor") OrElse strDataTypes(i).Contains("character") Then + If strDataTypes(i).Contains("factor") OrElse strDataTypes(i).Contains("character") OrElse strDataTypes(i).Contains("ordered") Then strDataTypes(i) = "categorical" ElseIf Not strDataTypes(i).Contains("logical") Then strDataTypes(i) = "numeric" diff --git a/instat/ucrScript.Designer.vb b/instat/ucrScript.Designer.vb index e1240b0807b..e06e66e2152 100644 --- a/instat/ucrScript.Designer.vb +++ b/instat/ucrScript.Designer.vb @@ -51,6 +51,8 @@ Partial Class ucrScript Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator() Me.mnuRunCurrentStatementSelection = New System.Windows.Forms.ToolStripMenuItem() Me.mnuRunAllText = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator() + Me.mnuReformatCode = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() Me.mnuOpenScriptasFile = New System.Windows.Forms.ToolStripMenuItem() Me.mnuInsertScript = New System.Windows.Forms.ToolStripMenuItem() @@ -61,7 +63,10 @@ Partial Class ucrScript Me.lblHeaderScript = New System.Windows.Forms.Label() Me.tlpTableContainer = New System.Windows.Forms.TableLayoutPanel() Me.Panel = New System.Windows.Forms.Panel() - Me.cmdInsertScript = New System.Windows.Forms.Button() + Me.cmdInsert = New instat.ucrSplitButton() + Me.contextMenuStriptInsert = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.toolStripMenuItemInsertStatement = New System.Windows.Forms.ToolStripMenuItem() + Me.toolStripMenuItemInsertCommentUncomment = New System.Windows.Forms.ToolStripMenuItem() Me.cmdSave = New System.Windows.Forms.Button() Me.cmdLoadScript = New System.Windows.Forms.Button() Me.cmdRemoveTab = New System.Windows.Forms.Button() @@ -72,11 +77,10 @@ Partial Class ucrScript Me.cmdRunStatementSelection = New System.Windows.Forms.Button() Me.TabControl = New System.Windows.Forms.TabControl() Me.toolTipScriptWindow = New System.Windows.Forms.ToolTip(Me.components) - Me.mnuReformatCode = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator() Me.mnuContextScript.SuspendLayout() Me.tlpTableContainer.SuspendLayout() Me.Panel.SuspendLayout() + Me.contextMenuStriptInsert.SuspendLayout() Me.SuspendLayout() ' 'mnuContextScript @@ -84,7 +88,7 @@ Partial Class ucrScript Me.mnuContextScript.ImageScalingSize = New System.Drawing.Size(24, 24) Me.mnuContextScript.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuUndo, Me.mnuRedo, Me.ToolStripSeparator1, Me.mnuCut, Me.mnuCopy, Me.mnuPaste, Me.mnuSelectAll, Me.mnuClear, Me.ToolStripSeparator2, Me.mnuRunCurrentStatementSelection, Me.mnuRunAllText, Me.ToolStripSeparator5, Me.mnuReformatCode, Me.ToolStripSeparator3, Me.mnuOpenScriptasFile, Me.mnuInsertScript, Me.mnuLoadScriptFromFile, Me.mnuSaveScript, Me.ToolStripSeparator4, Me.mnuHelp}) Me.mnuContextScript.Name = "mnuContextLogFile" - Me.mnuContextScript.Size = New System.Drawing.Size(426, 547) + Me.mnuContextScript.Size = New System.Drawing.Size(426, 514) ' 'mnuUndo ' @@ -159,6 +163,17 @@ Partial Class ucrScript Me.mnuRunAllText.Size = New System.Drawing.Size(425, 32) Me.mnuRunAllText.Text = "Run All Text" ' + 'ToolStripSeparator5 + ' + Me.ToolStripSeparator5.Name = "ToolStripSeparator5" + Me.ToolStripSeparator5.Size = New System.Drawing.Size(422, 6) + ' + 'mnuReformatCode + ' + Me.mnuReformatCode.Name = "mnuReformatCode" + Me.mnuReformatCode.Size = New System.Drawing.Size(425, 32) + Me.mnuReformatCode.Text = "Reformat Code" + ' 'ToolStripSeparator3 ' Me.ToolStripSeparator3.Name = "ToolStripSeparator3" @@ -236,7 +251,7 @@ Partial Class ucrScript ' 'Panel ' - Me.Panel.Controls.Add(Me.cmdInsertScript) + Me.Panel.Controls.Add(Me.cmdInsert) Me.Panel.Controls.Add(Me.cmdSave) Me.Panel.Controls.Add(Me.cmdLoadScript) Me.Panel.Controls.Add(Me.cmdRemoveTab) @@ -252,15 +267,38 @@ Partial Class ucrScript Me.Panel.Size = New System.Drawing.Size(997, 42) Me.Panel.TabIndex = 10 ' - 'cmdInsertScript + 'cmdInsert + ' + Me.cmdInsert.AutoSize = True + Me.cmdInsert.ContextMenuStrip = Me.contextMenuStriptInsert + Me.cmdInsert.Location = New System.Drawing.Point(506, 2) + Me.cmdInsert.Margin = New System.Windows.Forms.Padding(4) + Me.cmdInsert.Name = "cmdInsert" + Me.cmdInsert.Size = New System.Drawing.Size(106, 34) + Me.cmdInsert.SplitMenuStrip = Me.contextMenuStriptInsert + Me.cmdInsert.TabIndex = 11 + Me.cmdInsert.Tag = "Insert" + Me.cmdInsert.Text = "Insert" + Me.cmdInsert.UseVisualStyleBackColor = True ' - Me.cmdInsertScript.Location = New System.Drawing.Point(503, 2) - Me.cmdInsertScript.Margin = New System.Windows.Forms.Padding(4) - Me.cmdInsertScript.Name = "cmdInsertScript" - Me.cmdInsertScript.Size = New System.Drawing.Size(112, 34) - Me.cmdInsertScript.TabIndex = 8 - Me.cmdInsertScript.Text = "Insert" - Me.cmdInsertScript.UseVisualStyleBackColor = True + 'contextMenuStriptInsert + ' + Me.contextMenuStriptInsert.ImageScalingSize = New System.Drawing.Size(24, 24) + Me.contextMenuStriptInsert.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.toolStripMenuItemInsertStatement, Me.toolStripMenuItemInsertCommentUncomment}) + Me.contextMenuStriptInsert.Name = "contextMenuStripToScript" + Me.contextMenuStriptInsert.Size = New System.Drawing.Size(269, 101) + ' + 'toolStripMenuItemInsertStatement + ' + Me.toolStripMenuItemInsertStatement.Name = "toolStripMenuItemInsertStatement" + Me.toolStripMenuItemInsertStatement.Size = New System.Drawing.Size(268, 32) + Me.toolStripMenuItemInsertStatement.Text = "Statements" + ' + 'toolStripMenuItemInsertCommentUncomment + ' + Me.toolStripMenuItemInsertCommentUncomment.Name = "toolStripMenuItemInsertCommentUncomment" + Me.toolStripMenuItemInsertCommentUncomment.Size = New System.Drawing.Size(268, 32) + Me.toolStripMenuItemInsertCommentUncomment.Text = "Comment/Uncomment" ' 'cmdSave ' @@ -352,17 +390,6 @@ Partial Class ucrScript Me.TabControl.Size = New System.Drawing.Size(997, 662) Me.TabControl.TabIndex = 1 ' - 'mnuReformatCode - ' - Me.mnuReformatCode.Name = "mnuReformatCode" - Me.mnuReformatCode.Size = New System.Drawing.Size(425, 32) - Me.mnuReformatCode.Text = "Reformat Code" - ' - 'ToolStripSeparator5 - ' - Me.ToolStripSeparator5.Name = "ToolStripSeparator5" - Me.ToolStripSeparator5.Size = New System.Drawing.Size(422, 6) - ' 'ucrScript ' Me.AutoScaleDimensions = New System.Drawing.SizeF(144.0!, 144.0!) @@ -376,6 +403,8 @@ Partial Class ucrScript Me.mnuContextScript.ResumeLayout(False) Me.tlpTableContainer.ResumeLayout(False) Me.Panel.ResumeLayout(False) + Me.Panel.PerformLayout() + Me.contextMenuStriptInsert.ResumeLayout(False) Me.ResumeLayout(False) End Sub @@ -410,8 +439,11 @@ Partial Class ucrScript Friend WithEvents cmdRemoveTab As Button Friend WithEvents cmdSave As Button Friend WithEvents cmdLoadScript As Button - Friend WithEvents cmdInsertScript As Button Friend WithEvents mnuInsertScript As ToolStripMenuItem Friend WithEvents ToolStripSeparator5 As ToolStripSeparator Friend WithEvents mnuReformatCode As ToolStripMenuItem + Friend WithEvents cmdInsert As ucrSplitButton + Friend WithEvents contextMenuStriptInsert As ContextMenuStrip + Friend WithEvents toolStripMenuItemInsertStatement As ToolStripMenuItem + Friend WithEvents toolStripMenuItemInsertCommentUncomment As ToolStripMenuItem End Class \ No newline at end of file diff --git a/instat/ucrScript.resx b/instat/ucrScript.resx index af5c5c70b70..90bb36c80a0 100644 --- a/instat/ucrScript.resx +++ b/instat/ucrScript.resx @@ -120,6 +120,9 @@ 17, 17 + + 449, 17 + 167, 17 diff --git a/instat/ucrScript.vb b/instat/ucrScript.vb index 794614210ce..019cc9217f4 100644 --- a/instat/ucrScript.vb +++ b/instat/ucrScript.vb @@ -787,10 +787,6 @@ Public Class ucrScript LoadScript() End Sub - Private Sub mnuInsertScript_Click(sender As Object, e As EventArgs) Handles mnuInsertScript.Click, cmdInsertScript.Click - dlgScript.ShowDialog() - End Sub - Private Sub cmdRemoveTab_Click(sender As Object, e As EventArgs) Handles cmdRemoveTab.Click 'never remove last script tab If TabControl.TabCount < 2 Then @@ -1050,4 +1046,61 @@ Public Class ucrScript End If End Sub + Private Sub cmdInsert_Click(sender As Object, e As EventArgs) Handles cmdInsert.Click, toolStripMenuItemInsertStatement.Click + dlgScript.ShowDialog() + End Sub + + Private Sub toolStripMenuItemInsertCommentUncomment_Click(sender As Object, e As EventArgs) Handles toolStripMenuItemInsertCommentUncomment.Click + Dim originalCaretPosition As Integer = clsScriptActive.CurrentPosition + + ' Get the start and end positions of the selected text + Dim selectionStart As Integer = clsScriptActive.SelectionStart + Dim selectionEnd As Integer = clsScriptActive.SelectionEnd + + ' Get the start and end lines of the selection + Dim startLine As Integer = clsScriptActive.LineFromPosition(selectionStart) + Dim endLine As Integer = clsScriptActive.LineFromPosition(selectionEnd) + + ' Begin updating text + clsScriptActive.BeginUndoAction() + + Try + ' Check if all lines are commented or not + Dim allCommented As Boolean = True + For lineIndex As Integer = startLine To endLine + Dim lineText As String = clsScriptActive.Lines(lineIndex).Text.TrimStart() + If Not lineText.StartsWith("#") Then + allCommented = False + Exit For + End If + Next + + ' Toggle comment status for each line + For lineIndex As Integer = startLine To endLine + Dim line As Line = clsScriptActive.Lines(lineIndex) + Dim lineStartPos As Integer = line.Position + Dim lineEndPos As Integer = lineStartPos + line.Length + Dim lineText As String = line.Text + Dim iCountSpace As Integer = System.Text.RegularExpressions.Regex.Matches(lineText, "#\s#").Count + If iCountSpace > 0 Then iCountSpace += 1 + + If allCommented Then + ' Set the target range to the matched text + clsScriptActive.TargetStart = lineStartPos + clsScriptActive.TargetEnd = lineStartPos + lineText.Count(Function(c) c = "#"c) + iCountSpace + ' Replace the target range with an empty string to remove the `#` + clsScriptActive.ReplaceTarget("") + Else + ' Comment: Add `#` at the start + clsScriptActive.InsertText(lineStartPos, "# ") + End If + Next + Finally + clsScriptActive.EndUndoAction() + End Try + + clsScriptActive.Focus() + clsScriptActive.GotoPosition(originalCaretPosition) + End Sub + End Class