Skip to content

Commit

Permalink
Merge pull request #85 from africanmathsinitiative/master
Browse files Browse the repository at this point in the history
updating my master
  • Loading branch information
stevenndungu authored Jan 25, 2017
2 parents 78cbc78 + c2ee8ed commit d1c27a8
Show file tree
Hide file tree
Showing 40 changed files with 2,104 additions and 738 deletions.
44 changes: 44 additions & 0 deletions instat/UcrPanel.Designer.vb

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

120 changes: 120 additions & 0 deletions instat/UcrPanel.resx
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
113 changes: 113 additions & 0 deletions instat/UcrPanel.vb
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
' Instat-R
' Copyright (C) 2015
'
' This program is free software: you can redistribute it and/or modify
' it under the terms of the GNU General Public License as published by
' the Free Software Foundation, either version 3 of the License, or
' (at your option) any later version.
'
' This program is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
' GNU General Public License for more details.
'
' You should have received a copy of the GNU General Public License k
' along with this program. If not, see <http://www.gnu.org/licenses/>.
Imports instat
Public Class UcrPanel
Private lstRadioButtonValues As New List(Of KeyValuePair(Of RadioButton, String))

Public Sub AddRadioButtonRange(lstRadioButtons As RadioButton(), Optional bRepositionControls As Boolean = True)
pnlRadios.Controls.AddRange(lstRadioButtons)
For Each rdoTemp As RadioButton In lstRadioButtons
AddHandler rdoTemp.CheckedChanged, AddressOf RadioButtons_CheckedChanged
If bRepositionControls Then
If rdoTemp.Location.X - Me.Location.X < 0 OrElse rdoTemp.Location.Y - Me.Location.Y < 0 Then
MsgBox("Developer error: Radio button is not within the bounds of the panel. Reposition the radio button in the designer.")
End If
rdoTemp.Location = New System.Drawing.Point(Math.Max(rdoTemp.Location.X - Me.Location.X, 0), Math.Max(rdoTemp.Location.Y - Me.Location.Y, 0))
End If
Next
End Sub

Public Sub AddRadioButtonRange(lstNewRadioButtonValues As List(Of KeyValuePair(Of RadioButton, String)), Optional bRepositionControls As Boolean = True)
Dim lstRadioButtons As New List(Of RadioButton)

For Each kvpTemp As KeyValuePair(Of RadioButton, String) In lstNewRadioButtonValues
lstRadioButtons.Add(kvpTemp.Key)
Next
AddRadioButtonRange(lstRadioButtons.ToArray(), bRepositionControls)
lstRadioButtonValues.AddRange(lstNewRadioButtonValues)
End Sub

Public Sub AddRadioButton(rdoTemp As RadioButton, Optional strValue As String = "")
Dim kvpTemp As New KeyValuePair(Of RadioButton, String)(rdoTemp, strValue)

AddRadioButtonRange({rdoTemp})
If strValue <> "" Then
lstRadioButtonValues.Add(kvpTemp)
End If
End Sub

Public Sub RadioButtons_CheckedChanged()
Dim strNewValue As String = ""
Dim rdoTemp As RadioButton
Dim iIndex As Integer

If bChangeParameterValue AndAlso clsParameter IsNot Nothing Then
For Each ctrTemp As Control In pnlRadios.Controls
If TypeOf ctrTemp Is RadioButton Then
rdoTemp = DirectCast(ctrTemp, RadioButton)
If rdoTemp.Checked Then
iIndex = lstRadioButtonValues.FindIndex(Function(x) x.Key.Equals(rdoTemp))
If iIndex <> -1 Then
strNewValue = lstRadioButtonValues(iIndex).Value
Exit For
End If
End If
End If
Next
If strNewValue <> "" Then
clsParameter.SetArgumentValue(strNewValue)
Else
MsgBox("Developer error: No parameter value is associated to the currently checked radio button. Cannot update parameter.")
End If
End If
UpdateRCode()
OnControlValueChanged()
End Sub

Public Overrides Sub UpdateControl(Optional bReset As Boolean = False)
Dim strCurrentValue As String
Dim bFound As Boolean = False

MyBase.UpdateControl(bReset)

If clsParameter IsNot Nothing Then
If bChangeParameterValue Then
strCurrentValue = clsParameter.strArgumentValue

For Each kvpTemp As KeyValuePair(Of RadioButton, String) In lstRadioButtonValues
If kvpTemp.Value = strCurrentValue Then
kvpTemp.Key.Checked = True
bFound = True
Exit For
End If
Next
If Not bFound Then
MsgBox("Parameter as value: " & strCurrentValue & " which is not associated to any radio button in this control. Cannot update radio buttons.")
End If
ElseIf bAddRemoveParameter Then
'Commented out as not currently needed. Can be included if needed.
'If bParameterIncludedWhenChecked Then
'chkCheck.Checked = clsRCode.ContainsParameter(clsParameter)
'Else
'chkCheck.Checked = Not clsRCodeObject.clsParameters.Contains(clsParameter)
'End If
End If
Else
'chkCheck.Checked = LinkedControlsParametersPresent()
End If
UpdateLinkedControls()
End Sub
End Class
Loading

0 comments on commit d1c27a8

Please sign in to comment.