Skip to content

Commit

Permalink
Merge pull request #500 from IDEMSInternational/master
Browse files Browse the repository at this point in the history
updated my master
  • Loading branch information
Patowhiz authored Oct 29, 2024
2 parents 2cf3eb5 + bb6ec7a commit 78bdc78
Show file tree
Hide file tree
Showing 155 changed files with 19,357 additions and 2,268 deletions.
196 changes: 196 additions & 0 deletions .github/workflows/release-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@

name: Create Installers



on:
workflow_dispatch:
inputs:
major_version:
description: 'Major Version'
required: true
minor_version:
description: 'Minor Version'
required: true
revision_no:
description: 'Revision'
required: true
r-version:
description: 'Specify the R version to install'
required: true
default: '4.4.1' # Default version if the user does not specify

jobs:

build:

# running on 2019 so that .NET version 4.5 and lower can be used
runs-on: windows-2019

# set variables
env:
Solution_Name: Instat.sln
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}


# check out r-instat
steps:

- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

# Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild
- name: Setup MSBuild.exe
uses: microsoft/[email protected]

# set up and restore NuGet packages
- name: Setup NuGet
uses: NuGet/[email protected]

- name: Restore NuGet
run: nuget restore $env:Solution_Name


# Restore the application to populate the obj folder with RuntimeIdentifiers
- name: Restore the application
run: msbuild $env:Solution_Name /t:Restore /p:Configuration=Release

# increment build number
- name: Generate build number
uses: einaregilsson/build-number@v3
with:
token: ${{secrets.github_token}}

#update version numbers in assembley
- name: set-version-assemblyinfo
uses: dannevesdantas/[email protected]
with:
# Folder location to search for AssemblyInfo.cs/.vb files
path: instat\My Project\AssemblyInfo.vb
# optional, default is ${{ github.workspace }}
# Version number to set on [AssemblyVersion] and [AssemblyFileVersion] attributes of AssemblyInfo.cs/.vb files
version: "${{ inputs.major_version }}.${{ inputs.minor_version }}.${{ inputs.revision_no }}.${env:BUILD_NUMBER}"

# Create the app package by building and packaging the Windows Application Packaging project
# 64bit
- name: Create the app package 64 bit
run: msbuild $env:Solution_Name /p:Configuration=Release /p:Platform=x64 /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:PackageCertificateKeyFile=GitHubActionsWorkflow.pfx /p:PackageCertificatePassword=${{ secrets.Pfx_Key }}
env:
Appx_Bundle: Always
Appx_Package_Build_Mode: StoreUpload
Configuration: ${{ matrix.configuration }}

# Build 64 bit installer without R
- name: Building the installer 64bit - No R
run: |
"%programfiles(x86)%\Inno Setup 6\iscc.exe" "inno_install_script_64bit.iss"
shell: cmd

# Upload 64 bit installer without R
- name: Upload the 64 bit installer as an artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name != 'pull_request' }}
with:
path: "Output/"
name: rinstat64NoR

- name: Remove 64 bit without R installer
run: |
del "Output/*"
# check out R-Instat Data
- name: Checkout Instat Data
uses: actions/checkout@v3
with:
repository: ' africanmathsinitiative/R-Instat-Data'
fetch-depth: 0
path: 'InstatData'

# Create directory and copy over InstatData (64bit)
- name: Make Library directory 64 bit
run: |
MKDIR instat\bin\x64\Release\static\Library\
- name: Copy R-Instat Data 64 bit
run: |
ROBOCOPY InstatData\data\ instat\bin\x64\Release\static\Library\ /E
continue-on-error: true

# Install R
- name: Set up R
uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ inputs.r-version }}

- name: Debug paths
run: |
$R_HOME=$(Rscript -e 'cat(R.home())')
echo "R_HOME path: $R_HOME"
echo "Source path: $(pwd)\installer\Rprofile.site"
- name: Update Rprofile.site
run: |
$R_HOME=$(Rscript -e 'cat(R.home())')
ROBOCOPY "${{ github.workspace }}\installer" "$R_HOME\etc" "Rprofile.site" /COPY:DAT
continue-on-error: true

- name: Copy R 64 bit
run: |
$R_HOME=$(Rscript -e 'cat(R.home())')
ROBOCOPY "$R_HOME" "${{ github.workspace }}\instat\bin\x64\Release\static\R" /E
continue-on-error: true

- name: Set R-tools
uses: r-windows/install-rtools@master

# Check if the directory exists
- name: Verify InstallPackages.R directory
run: |
if (Test-Path "D:\a\R-Instat\R-Instat\instat\static\InstatObject\R") {
Write-Host "Directory exists."
} else {
Write-Host "Directory does not exist."
}
# List the contents of the directory to check for the script
- name: List contents of InstatObject\R directory
run: |
Get-ChildItem "D:\a\R-Instat\R-Instat\instat\static\InstatObject\R"
# Check if the directory exists
- name: Verify script directory
run: |
if (Test-Path "D:\a\R-Instat\R-Instat\instat\bin\x64\Release\static\R") {
Write-Host "Directory exists."
} else {
Write-Host "Directory does not exist."
}
# List the contents of the directory to check for the script
- name: List contents of R\bin directory
run: |
Get-ChildItem "D:\a\R-Instat\R-Instat\instat\bin\x64\Release\static"
- name: List contents of R\bin directory
run: |
Get-ChildItem "D:\a\R-Instat\R-Instat\instat\bin\x64\Release\static\R"
- name: Install R packages (64 bit)
run: |
"${{ github.workspace }}\instat\bin\x64\Release\static\R\bin\Rscript.exe" "${{ github.workspace }}\instat\static\InstatObject\R\InstallPackages.R"
shell: cmd

- name: Building the installer 64bit - With R
run: |
"%programfiles(x86)%\Inno Setup 6\iscc.exe" "${{ github.workspace }}\inno_install_script_64bit.iss"
shell: cmd

- name: Upload the 64 bit installer with R as an artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name != 'pull_request' }}
with:
path: "Output/"
name: rinstat64WithR-innosetup


25 changes: 25 additions & 0 deletions installer/Rprofile.site
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Things you might want to change

# options(papersize="a4")
# options(editor="notepad")
# options(pager="internal")

# set the default help type
# options(help_type="text")
options(help_type="html")

# set a site library
# .Library.site <- file.path(chartr("\\", "/", R.home()), "site-library")

# Only use internal library
if (length(.libPaths()) == 2) .libPaths(.libPaths()[2])

# set a CRAN mirror
# local({r <- getOption("repos")
# r["CRAN"] <- "http://my.local.cran"
# options(repos=r)})

# Give a fortune cookie, but only to interactive sessions
# (This would need the fortunes package to be installed.)
# if (interactive())
# fortunes::fortune()
4 changes: 4 additions & 0 deletions instat/Interface/IDataViewGrid.vb
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ Public Interface IDataViewGrid

Event WorksheetChanged()

Event WorksheetInserted()

Event WorksheetRemoved(worksheet As clsWorksheetAdapter)

Event FindRow()
Expand All @@ -44,6 +46,8 @@ Public Interface IDataViewGrid

Sub AdjustColumnWidthAfterWrapping(strColumn As String, Optional bApplyWrap As Boolean = False)

Sub Focus()

Function GetSelectedColumns() As List(Of clsColumnHeaderDisplay)

Function GetFirstRowHeader() As String
Expand Down
54 changes: 53 additions & 1 deletion instat/Model/DataFrame/clsDataFramePage.vb
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,58 @@ Public Class clsDataFramePage
Return Math.Ceiling(_iTotalColumnCount / iColumnIncrements)
End Function

Public Sub Undo()
Dim clsUndoRFunction As New RFunction
clsUndoRFunction.SetRCommand(_clsRLink.strInstatDataObject & "$undo_last_action")
clsUndoRFunction.AddParameter("data_name", Chr(34) & _strDataFrameName & Chr(34))
_clsRLink.RunScript(clsUndoRFunction.ToScript)

End Sub

Public Function IsUndo(strCurrentDataFrame As String)
Dim clsIsUndoFunction As New RFunction
Dim expTemp As SymbolicExpression
clsIsUndoFunction.SetRCommand(_clsRLink.strInstatDataObject & "$is_undo")
clsIsUndoFunction.AddParameter("data_name", Chr(34) & strCurrentDataFrame & Chr(34))

If clsIsUndoFunction IsNot Nothing Then
expTemp = frmMain.clsRLink.RunInternalScriptGetValue(clsIsUndoFunction.ToScript(), bSilent:=True)
If expTemp IsNot Nothing AndAlso expTemp.AsCharacter(0) = "TRUE" Then
Return True
End If
End If

Return False
End Function

Public Sub DisableEnableUndo(bDisable As Boolean, strCurrentDataFrame As String)
Dim clsEnableDisableUndoRFunction As New RFunction
clsEnableDisableUndoRFunction.SetRCommand(_clsRLink.strInstatDataObject & "$set_enable_disable_undo")
clsEnableDisableUndoRFunction.AddParameter("data_name", Chr(34) & strCurrentDataFrame & Chr(34))

Dim strDisable As String = If(bDisable, "TRUE", "FALSE")
clsEnableDisableUndoRFunction.AddParameter("disable_undo", strDisable)
_clsRLink.RunScript(clsEnableDisableUndoRFunction.ToScript)

End Sub

Public Function HasUndoHistory()
Dim expTemp As SymbolicExpression
Dim bHasHistory As Boolean = False
Dim clsHasHistoryFunction As New RFunction

clsHasHistoryFunction.SetRCommand(_clsRLink.strInstatDataObject & "$has_undo_history")
clsHasHistoryFunction.AddParameter("data_name", Chr(34) & _strDataFrameName & Chr(34))
If clsHasHistoryFunction IsNot Nothing Then
expTemp = frmMain.clsRLink.RunInternalScriptGetValue(clsHasHistoryFunction.ToScript(), bSilent:=True)
If expTemp IsNot Nothing AndAlso expTemp.AsCharacter(0) = "TRUE" Then
bHasHistory = True
End If
End If

Return bHasHistory
End Function

Private Function GetDataFrameFromRCommand() As DataFrame
Dim clsGetDataFrameRFunction As New RFunction
Dim expTemp As SymbolicExpression
Expand Down Expand Up @@ -286,7 +338,7 @@ Public Class clsDataFramePage
columnHeader.strTypeShortCode = "(L)"
' Structured columns e.g. "circular or bigz or bigq " are coded with "(S)"
ElseIf strHeaderType.Contains("circular") OrElse strHeaderType.Contains("bigz") OrElse
strHeaderType.Contains("bigq") OrElse strHeaderType.Contains("polynomial") Then
strHeaderType.Contains("bigq") OrElse strHeaderType.Contains("polynomial") OrElse strHeaderType.Contains("roman") Then
columnHeader.strTypeShortCode = "(S)"
ElseIf strHeaderType.Contains("list") Then
columnHeader.strTypeShortCode = "(LT)"
Expand Down
6 changes: 6 additions & 0 deletions instat/UserControls/DataGrid/Linux/ucrDataViewLinuxGrid.vb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ Public Class ucrDataViewLinuxGrid

Public Event WorksheetChanged() Implements IDataViewGrid.WorksheetChanged

Public Event WorksheetInserted() Implements IDataViewGrid.WorksheetInserted

Public Event WorksheetRemoved(worksheet As clsWorksheetAdapter) Implements IDataViewGrid.WorksheetRemoved

Public Sub AddColumns(visiblePage As clsDataFramePage) Implements IDataViewGrid.AddColumns
Expand Down Expand Up @@ -69,6 +71,10 @@ Public Class ucrDataViewLinuxGrid
Next
End Sub

Public Sub FocusGrid() Implements IDataViewGrid.Focus
Me.Focus()
End Sub

Public Function SelectedTab() As String
If tcTabs.SelectedTab Is Nothing Then
Return ""
Expand Down
12 changes: 12 additions & 0 deletions instat/UserControls/DataGrid/ReoGrid/ucrDataViewReoGrid.vb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ Public Class ucrDataViewReoGrid

Public Event WorksheetChanged() Implements IDataViewGrid.WorksheetChanged

Public Event WorksheetInserted() Implements IDataViewGrid.WorksheetInserted

Public Event WorksheetRemoved(worksheet As clsWorksheetAdapter) Implements IDataViewGrid.WorksheetRemoved

Public Sub AddColumns(visiblePage As clsDataFramePage) Implements IDataViewGrid.AddColumns
Expand All @@ -57,6 +59,11 @@ Public Class ucrDataViewReoGrid
Next
End Sub

Public Sub FocusGrid() Implements IDataViewGrid.Focus
grdData.Focus()
grdData.CurrentWorksheet.FocusPos = grdData.CurrentWorksheet.FocusPos
End Sub

Public Sub AddRowData(dataFrame As clsDataFrame) Implements IDataViewGrid.AddRowData
Dim textColour As Color
Dim strRowNames As String()
Expand Down Expand Up @@ -217,6 +224,11 @@ Public Class ucrDataViewReoGrid
RaiseEvent WorksheetChanged()
End Sub

Private Sub grdData_WorksheetInserted(sender As Object, e As EventArgs) Handles grdData.WorksheetInserted
RaiseEvent WorksheetInserted()
End Sub


Private Sub grdData_WorksheetRemoved(sender As Object, e As WorksheetRemovedEventArgs) Handles grdData.WorksheetRemoved
RaiseEvent WorksheetRemoved(New clsWorksheetAdapter(e.Worksheet))
End Sub
Expand Down
Loading

0 comments on commit 78bdc78

Please sign in to comment.