├── Examples ├── Results │ └── .gitignore ├── Fixtures │ └── Source │ │ ├── ExampleFixtures │ │ ├── .gitignore │ │ ├── MultiplicationFixture.cs │ │ ├── RightInventoryFixture.cs │ │ ├── WrongInventoryFixture.cs │ │ ├── ExceptionInventoryFixture.cs │ │ ├── ConnectionFixture.cs │ │ ├── InventoryFixture.cs │ │ ├── Article.cs │ │ ├── AdditionFixture.cs │ │ ├── AssemblyInfo.cs │ │ └── ExampleFixtures.csproj │ │ ├── fit │ │ └── fit.dll │ │ └── Fixtures.sln └── Specifications │ ├── RightRowFixture.html │ ├── WrongRowFixture.html │ ├── ExceptionRowFixture.html │ ├── RightPrimitiveFixture.html │ ├── WrongPrimitiveFixture.html │ ├── ExceptionPrimitiveFixture.html │ ├── RightColumnFixture.html │ ├── WrongColumnFixture.html │ ├── ExceptionColumnFixture.html │ ├── RightActionFixture.html │ ├── WrongActionFixture.html │ └── ExceptionActionFixture.html ├── .gitignore ├── README.md ├── Runner ├── App.ico ├── AssemblyInfo.cs ├── Runner.cs └── fit.gui.runner.csproj ├── fit-gui ├── App.ico ├── AboutForm.cs ├── App.config ├── AssemblyInfo.cs ├── fit-gui.csproj ├── AboutForm.resx ├── AddFolderForm.cs └── AddFolderForm.resx ├── fit-gui-gtk ├── folder.png ├── folder_add.png ├── folder_delete.png ├── document_index.png ├── document_valid.png ├── page-not-found.png ├── control_play_blue.png ├── control_stop_blue.png ├── Main.cs ├── page_not_found.html ├── AssemblyInfo.cs ├── gtk-gui │ ├── generated.cs │ ├── fit.gui.gtk.MainWindow.cs │ └── fit.gui.gtk.TestsFolder.cs ├── TestsFolder.cs └── fit.gui.gtk.csproj ├── FitGuiCommon ├── FitTestFile.cs ├── FitTestFolder.cs ├── CommonData.cs ├── Configuration.xsd ├── AssemblyInfo.cs ├── FitTestContainer.cs ├── fit.gui.common.csproj ├── FitTestRunner.cs └── Configuration.cs ├── ReleaseNotes.txt ├── ProgressBar ├── AssemblyInfo.cs ├── ProgressBar.csproj ├── ProgressBar.cs └── ProgressBar.resx ├── fit-gui.sln └── Installer └── fit-gui.nsi /Examples/Results/.gitignore: -------------------------------------------------------------------------------- 1 | *.htm* 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | *.resources 3 | *.userprefs 4 | -------------------------------------------------------------------------------- /Examples/Fixtures/Source/ExampleFixtures/.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | *.resources 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | fit-gui 2 | ======= 3 | 4 | fit-gui is .NET fit tests runner. 5 | -------------------------------------------------------------------------------- /Runner/App.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/Runner/App.ico -------------------------------------------------------------------------------- /fit-gui/App.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/fit-gui/App.ico -------------------------------------------------------------------------------- /fit-gui/AboutForm.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/fit-gui/AboutForm.cs -------------------------------------------------------------------------------- /fit-gui-gtk/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/fit-gui-gtk/folder.png -------------------------------------------------------------------------------- /fit-gui-gtk/folder_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/fit-gui-gtk/folder_add.png -------------------------------------------------------------------------------- /fit-gui-gtk/folder_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/fit-gui-gtk/folder_delete.png -------------------------------------------------------------------------------- /fit-gui-gtk/document_index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/fit-gui-gtk/document_index.png -------------------------------------------------------------------------------- /fit-gui-gtk/document_valid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/fit-gui-gtk/document_valid.png -------------------------------------------------------------------------------- /fit-gui-gtk/page-not-found.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/fit-gui-gtk/page-not-found.png -------------------------------------------------------------------------------- /fit-gui-gtk/control_play_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/fit-gui-gtk/control_play_blue.png -------------------------------------------------------------------------------- /fit-gui-gtk/control_stop_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/fit-gui-gtk/control_stop_blue.png -------------------------------------------------------------------------------- /Examples/Fixtures/Source/fit/fit.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apis/fit-gui/master/Examples/Fixtures/Source/fit/fit.dll -------------------------------------------------------------------------------- /fit-gui/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /fit-gui-gtk/Main.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Gtk; 3 | 4 | namespace fit.gui.gtk 5 | { 6 | class MainClass 7 | { 8 | public static void Main (string[] args) 9 | { 10 | Application.Init (); 11 | MainWindow win = new MainWindow (); 12 | win.Show (); 13 | Application.Run (); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /fit-gui-gtk/page_not_found.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | some_text 15 | 16 | -------------------------------------------------------------------------------- /Examples/Fixtures/Source/ExampleFixtures/MultiplicationFixture.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using fit; 3 | 4 | namespace fit.gui.examples 5 | { 6 | public class MultiplicationFixture : ColumnFixture 7 | { 8 | public int multiplicand; 9 | public int multiplier; 10 | 11 | public int product() 12 | { 13 | return multiplicand * multiplier; 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /Examples/Fixtures/Source/ExampleFixtures/RightInventoryFixture.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace fit.gui.examples 4 | { 5 | public class RightInventoryFixture : InventoryFixture 6 | { 7 | public RightInventoryFixture() : base( 8 | new Article[] 9 | { 10 | new Article(1002, "Arm chair", 3000), 11 | new Article(1003, "Stool", 1000), 12 | new Article(1001, "Chair", 2000) 13 | }) 14 | { 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /Examples/Fixtures/Source/ExampleFixtures/WrongInventoryFixture.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace fit.gui.examples 4 | { 5 | public class WrongInventoryFixture : InventoryFixture 6 | { 7 | public WrongInventoryFixture() : base( 8 | new Article[] 9 | { 10 | new Article(1003, "Stool", 1005), 11 | new Article(1001, "Chair", 2000), 12 | new Article(1000, "Taboret", 500) 13 | }) 14 | { 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /Examples/Fixtures/Source/ExampleFixtures/ExceptionInventoryFixture.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace fit.gui.examples 4 | { 5 | public class ExceptionInventoryFixture : InventoryFixture 6 | { 7 | public ExceptionInventoryFixture() : base( 8 | new Article[] 9 | { 10 | new Article(1002, "Arm chair", 3000), 11 | new Article(1003, "Stool", -1), 12 | new Article(1001, "Chair", 2000) 13 | }) 14 | { 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /FitGuiCommon/FitTestFile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using fit.gui.common; 4 | 5 | namespace fit.gui.common 6 | { 7 | [Serializable] 8 | public class FitTestFile 9 | { 10 | public string FileName; 11 | public int ParentHashCode; 12 | public TestRunProperties TestRunProperties; 13 | public bool isExecuted; 14 | 15 | public override int GetHashCode() 16 | { 17 | return ParentHashCode ^ FileName.GetHashCode(); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /Examples/Fixtures/Source/ExampleFixtures/ConnectionFixture.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using fit; 3 | 4 | namespace fit.gui.examples 5 | { 6 | public class ConnectionFixture : ActionFixture 7 | { 8 | private bool isConnected = false; 9 | 10 | public void Connect() 11 | { 12 | isConnected = true; 13 | } 14 | 15 | public bool IsConnected() 16 | { 17 | return isConnected; 18 | } 19 | 20 | public void Disconnect() 21 | { 22 | isConnected = false; 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /Examples/Fixtures/Source/ExampleFixtures/InventoryFixture.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace fit.gui.examples 4 | { 5 | public class InventoryFixture : RowFixture 6 | { 7 | private Article[] _articles; 8 | 9 | protected InventoryFixture(Article[] articles) 10 | { 11 | _articles = articles; 12 | } 13 | 14 | public override object[] query() 15 | { 16 | return _articles; 17 | } 18 | 19 | public override Type getTargetClass() 20 | { 21 | return typeof(Article); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Examples/Fixtures/Source/ExampleFixtures/Article.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace fit.gui.examples 4 | { 5 | public class Article 6 | { 7 | public int Id; 8 | public string Name; 9 | private float _price; 10 | 11 | public float Price() 12 | { 13 | if (_price < 0) 14 | throw new Exception("Negative price!"); 15 | 16 | return _price; 17 | } 18 | 19 | public Article(int id, string name, float price) 20 | { 21 | Id = id; 22 | Name = name; 23 | _price = price; 24 | } 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /Examples/Fixtures/Source/ExampleFixtures/AdditionFixture.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace fit.gui.examples 4 | { 5 | public class AdditionFixture : PrimitiveFixture 6 | { 7 | int _x = 0; 8 | int _y = 0; 9 | 10 | public override void doRows(Parse rows) 11 | { 12 | base.doRows(rows.more); 13 | } 14 | 15 | public override void doCell(Parse cell, int column) 16 | { 17 | switch (column) 18 | { 19 | case 0: 20 | _x = (int)parseLong(cell); 21 | break; 22 | 23 | case 1: 24 | _y = (int)parseLong(cell); 25 | break; 26 | 27 | case 2: 28 | check(cell, _x + _y); 29 | break; 30 | 31 | default: 32 | ignore(cell); 33 | break; 34 | } 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /FitGuiCommon/FitTestFolder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace fit.gui.common 5 | { 6 | [Serializable] 7 | public class FitTestFolder 8 | { 9 | private ArrayList fitTestFiles = new ArrayList(); 10 | 11 | public string FolderName; 12 | public string InputFolder; 13 | public string OutputFolder; 14 | public string FixturePath; 15 | public string FileMask = "*.htm;*.html"; 16 | 17 | public int Add(FitTestFile fitTestFile) 18 | { 19 | return fitTestFiles.Add(fitTestFile); 20 | } 21 | 22 | public int Count 23 | { 24 | get 25 | { 26 | return fitTestFiles.Count; 27 | } 28 | } 29 | 30 | public FitTestFile this[int fileIndex] 31 | { 32 | get 33 | { 34 | return (FitTestFile)fitTestFiles[fileIndex]; 35 | } 36 | 37 | set 38 | { 39 | fitTestFiles[fileIndex] = value; 40 | } 41 | } 42 | 43 | public override int GetHashCode() 44 | { 45 | return FolderName.GetHashCode(); 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /fit-gui-gtk/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | 4 | // Information about this assembly is defined by the following attributes. 5 | // Change them to the values specific to your project. 6 | 7 | [assembly: AssemblyTitle("fit-gui-gtk")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("")] 12 | [assembly: AssemblyCopyright("apis")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 17 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 18 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 19 | 20 | [assembly: AssemblyVersion("1.0.*")] 21 | 22 | // The following attributes are used to specify the signing key for the assembly, 23 | // if desired. See the Mono documentation for more information about signing. 24 | 25 | //[assembly: AssemblyDelaySign(false)] 26 | //[assembly: AssemblyKeyFile("")] 27 | 28 | -------------------------------------------------------------------------------- /ReleaseNotes.txt: -------------------------------------------------------------------------------- 1 | fit-gui 2 | Version 1.0 Beta 2 3 | Release Notes 4 | 5 | fit-gui is a small application which allows you to run group of Fit tests and see specifications and results right away. 6 | 7 | 03-January-2004 8 | fit-gui 1.0 Beta 2 released. 9 | 10 | List of features: 11 | Supports Fit 1.0 for .NET (http://sourceforge.net/projects/fit) 12 | 13 | Known problems: 14 | * Edit Fit test folder functionality not implemented yet. 15 | * If you start Runner.exe it may fail with System.IO.FileNotFoundException (in general Runner.exe is used internally by fit-gui.exe and not intended to be used outside). 16 | * If you start second instance of fit-gui it will fail with System.Net.Sockets.SocketException. 17 | 18 | To Do List: 19 | * Implement Edit Fit test folder functionality. 20 | * Implement easy access from fit-gui.exe to external HTML editor. 21 | * Implement right-click menu in TreeView control. 22 | * Implement UI controls persistence. 23 | 24 | Implemented: 25 | * Red-Green progress bar implemented. 26 | * Redesigned closing application behaviour, now on exit fit-gui kills any running jobs unconditionally. 27 | * Fixed bug which screwed up test results output after certain period of inactivity. 28 | * New icon assigned to fit-gui executable. 29 | * Installer created. 30 | 31 | 11-November-2004 32 | Revision fit-gui 1.0 Beta 1 released. 33 | 34 | 23-October-2004 35 | Initial revision fit-gui 0.1 Alpha first made available for download. 36 | 37 | 38 | -------------------------------------------------------------------------------- /FitGuiCommon/CommonData.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Remoting.Lifetime; 3 | 4 | namespace fit.gui.common 5 | { 6 | [Serializable] 7 | public struct TestRunProperties 8 | { 9 | public string OutputFile; 10 | public DateTime InputUpdate; 11 | public string FixturePath; 12 | public DateTime RunDate; 13 | public string InputFile; 14 | public string RunElapsedTime; 15 | public int countsRight; 16 | public int countsWrong; 17 | public int countsIgnores; 18 | public int countsExceptions; 19 | } 20 | 21 | public class CommonData : MarshalByRefObject 22 | { 23 | public const string OUTPUT_FILE = "output file"; 24 | public const string INPUT_UPDATE = "input update"; 25 | public const string COUNTS = "counts"; 26 | public const string FIXTURE_PATH = "fixture path"; 27 | public const string RUN_DATE = "run date"; 28 | public const string INPUT_FILE = "input file"; 29 | public const string RUN_ELAPSED_TIME = "run elapsed time"; 30 | private TestRunProperties _testRunProperties; 31 | 32 | public TestRunProperties TestRunProperties 33 | { 34 | get 35 | { 36 | lock (this) 37 | { 38 | return _testRunProperties; 39 | } 40 | } 41 | set 42 | { 43 | lock (this) 44 | { 45 | _testRunProperties = value; 46 | } 47 | } 48 | } 49 | 50 | public override Object InitializeLifetimeService() 51 | { 52 | ILease lease = (ILease)base.InitializeLifetimeService(); 53 | if (lease.CurrentState == LeaseState.Initial) 54 | { 55 | lease.InitialLeaseTime = TimeSpan.FromSeconds(0); 56 | } 57 | return lease; 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Examples/Specifications/RightRowFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | RightRowFixture 7 | 8 | 9 |
10 | Inventory Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
fit.gui.examples.RightInventoryFixture
IdNamePrice()
1001 2000.00
10023000.00
10031000.00
40 |
41 | 43 | 44 | 45 | 46 | 48 | 49 | 50 |
fit.Summary
47 |
51 | 52 | 53 | -------------------------------------------------------------------------------- /Examples/Specifications/WrongRowFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | WrongRowFixture 7 | 8 | 9 |
10 | Inventory Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
fit.gui.examples.WrongInventoryFixture
IdNamePrice()
1001 2000.00
10023000.00
10031000.00
40 |
41 | 43 | 44 | 45 | 46 | 48 | 49 | 50 |
fit.Summary
47 |
51 | 52 | 53 | -------------------------------------------------------------------------------- /Examples/Specifications/ExceptionRowFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | ExceptionRowFixture 7 | 8 | 9 |
10 | Inventory Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
fit.gui.examples.ExceptionInventoryFixture
IdNamePrice()
1001 2000.00
10023000.00
10031000.00
40 |
41 | 43 | 44 | 45 | 46 | 48 | 49 | 50 |
fit.Summary
47 |
51 | 52 | 53 | -------------------------------------------------------------------------------- /Examples/Specifications/RightPrimitiveFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | RightPrimitiveFixture 7 | 8 | 9 |
10 | Right Addition Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 39 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
fit.gui.examples.AdditionFixture
augendaddendsum
224
27 |
369
5
36 |
7
38 |
12
40 |
7916
49 |
50 | 52 | 53 | 54 | 55 | 57 | 58 | 59 |
fit.Summary
56 |
60 | 61 | 62 | -------------------------------------------------------------------------------- /Examples/Specifications/WrongPrimitiveFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | WrongPrimitiveFixture 7 | 8 | 9 |
10 | Wrong Addition Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 39 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
fit.gui.examples.AdditionFixture
augendaddendsum
224
27 |
3618
5
36 |
7
38 |
12
40 |
7916
49 |
50 | 52 | 53 | 54 | 55 | 57 | 58 | 59 |
fit.Summary
56 |
60 | 61 | 62 | -------------------------------------------------------------------------------- /Examples/Specifications/ExceptionPrimitiveFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | ExceptionPrimitiveFixture 7 | 8 | 9 |
10 | Exception Addition Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 39 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
fit.gui.examples.AdditionFixture
augendaddendsum
224
27 |
36red
5
36 |
7
38 |
12
40 |
7916
49 |
50 | 52 | 53 | 54 | 55 | 57 | 58 | 59 |
fit.Summary
56 |
60 | 61 | 62 | -------------------------------------------------------------------------------- /Examples/Specifications/RightColumnFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | RightColumnFixture 7 | 8 | 9 |
10 | Right Multiplication Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 39 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
fit.gui.examples.MultiplicationFixture
multiplicandmultiplierproduct()
224
27 |
3618
5
36 |
7
38 |
35
40 |
7963
49 |
50 | 52 | 53 | 54 | 55 | 57 | 58 | 59 |
fit.Summary
56 |
60 | 61 | 62 | -------------------------------------------------------------------------------- /Examples/Specifications/WrongColumnFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | WrongColumnFixture 7 | 8 | 9 |
10 | Wrong Multiplication Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 39 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
fit.gui.examples.MultiplicationFixture
multiplicandmultiplierproduct()
225
27 |
3618
5
36 |
7
38 |
34
40 |
7963
49 |
50 | 52 | 53 | 54 | 55 | 57 | 58 | 59 |
fit.Summary
56 |
60 | 61 | 62 | -------------------------------------------------------------------------------- /Examples/Specifications/ExceptionColumnFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | ExceptionColumnFixture 7 | 8 | 9 |
10 | Exception Multiplication Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 39 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
fit.gui.examples.MultiplicationFixture
multiplicandmultiplierproduct()
224
27 |
3618.5
5
36 |
7
38 |
35
40 |
79ABCD
49 |
50 | 52 | 53 | 54 | 55 | 57 | 58 | 59 |
fit.Summary
56 |
60 | 61 | 62 | -------------------------------------------------------------------------------- /Examples/Specifications/RightActionFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | RightActionFixture 7 | 8 | 9 |
10 | Right Connection Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
fit.ActionFixture
startfit.gui.examples.ConnectionFixture
22 |
pressConnect
28 |
checkIsConnectedTrue
pressDisconnect
39 |
checkIsConnectedFalse
48 |
49 | 51 | 52 | 53 | 54 | 56 | 57 | 58 |
fit.Summary
55 |
59 | 60 | 61 | -------------------------------------------------------------------------------- /Examples/Specifications/WrongActionFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | WrongActionFixture 7 | 8 | 9 |
10 | Wrong Connection Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
fit.ActionFixture
startfit.gui.examples.ConnectionFixture
22 |
pressConnect
28 |
checkIsConnectedTrue
pressConnect
39 |
checkIsConnectedFalse
48 |
49 | 51 | 52 | 53 | 54 | 56 | 57 | 58 |
fit.Summary
55 |
59 | 60 | 61 | -------------------------------------------------------------------------------- /Examples/Specifications/ExceptionActionFixture.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | ExceptionActionFixture 7 | 8 | 9 |
10 | Exception Connection Test
11 |
12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
fit.ActionFixture
startfit.gui.examples.ConnectionFixture
22 |
pressConnect
28 |
checkIsConnectedTrue
pressDisconnect
39 |
checkIsConnected2False
48 |
49 | 51 | 52 | 53 | 54 | 56 | 57 | 58 |
fit.Summary
55 |
59 | 60 | 61 | -------------------------------------------------------------------------------- /fit-gui-gtk/gtk-gui/generated.cs: -------------------------------------------------------------------------------- 1 | 2 | // This file has been generated by the GUI designer. Do not modify. 3 | namespace Stetic 4 | { 5 | internal class Gui 6 | { 7 | private static bool initialized; 8 | 9 | internal static void Initialize (Gtk.Widget iconRenderer) 10 | { 11 | if ((Stetic.Gui.initialized == false)) { 12 | Stetic.Gui.initialized = true; 13 | } 14 | } 15 | } 16 | 17 | internal class IconLoader 18 | { 19 | public static Gdk.Pixbuf LoadIcon (Gtk.Widget widget, string name, Gtk.IconSize size) 20 | { 21 | Gdk.Pixbuf res = widget.RenderIcon (name, size, null); 22 | if ((res != null)) { 23 | return res; 24 | } else { 25 | int sz; 26 | int sy; 27 | global::Gtk.Icon.SizeLookup (size, out sz, out sy); 28 | try { 29 | return Gtk.IconTheme.Default.LoadIcon (name, sz, 0); 30 | } catch (System.Exception) { 31 | if ((name != "gtk-missing-image")) { 32 | return Stetic.IconLoader.LoadIcon (widget, "gtk-missing-image", size); 33 | } else { 34 | Gdk.Pixmap pmap = new Gdk.Pixmap (Gdk.Screen.Default.RootWindow, sz, sz); 35 | Gdk.GC gc = new Gdk.GC (pmap); 36 | gc.RgbFgColor = new Gdk.Color (255, 255, 255); 37 | pmap.DrawRectangle (gc, true, 0, 0, sz, sz); 38 | gc.RgbFgColor = new Gdk.Color (0, 0, 0); 39 | pmap.DrawRectangle (gc, false, 0, 0, (sz - 1), (sz - 1)); 40 | gc.SetLineAttributes (3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round); 41 | gc.RgbFgColor = new Gdk.Color (255, 0, 0); 42 | pmap.DrawLine (gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz / 4))); 43 | pmap.DrawLine (gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz / 4))); 44 | return Gdk.Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz); 45 | } 46 | } 47 | } 48 | } 49 | } 50 | 51 | internal class ActionGroups 52 | { 53 | public static Gtk.ActionGroup GetActionGroup (System.Type type) 54 | { 55 | return Stetic.ActionGroups.GetActionGroup (type.FullName); 56 | } 57 | 58 | public static Gtk.ActionGroup GetActionGroup (string name) 59 | { 60 | return null; 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /FitGuiCommon/Configuration.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /Runner/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | // 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | // 8 | [assembly: AssemblyTitle("")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("")] 13 | [assembly: AssemblyCopyright("")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 18 | // Version information for an assembly consists of the following four values: 19 | // 20 | // Major Version 21 | // Minor Version 22 | // Build Number 23 | // Revision 24 | // 25 | // You can specify all the values or you can default the Revision and Build Numbers 26 | // by using the '*' as shown below: 27 | 28 | [assembly: AssemblyVersion("1.0.*")] 29 | 30 | // 31 | // In order to sign your assembly you must specify a key to use. Refer to the 32 | // Microsoft .NET Framework documentation for more information on assembly signing. 33 | // 34 | // Use the attributes below to control which key is used for signing. 35 | // 36 | // Notes: 37 | // (*) If no key is specified, the assembly is not signed. 38 | // (*) KeyName refers to a key that has been installed in the Crypto Service 39 | // Provider (CSP) on your machine. KeyFile refers to a file which contains 40 | // a key. 41 | // (*) If the KeyFile and the KeyName values are both specified, the 42 | // following processing occurs: 43 | // (1) If the KeyName can be found in the CSP, that key is used. 44 | // (2) If the KeyName does not exist and the KeyFile does exist, the key 45 | // in the KeyFile is installed into the CSP and used. 46 | // (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. 47 | // When specifying the KeyFile, the location of the KeyFile should be 48 | // relative to the project output directory which is 49 | // %Project Directory%\obj\. For example, if your KeyFile is 50 | // located in the project directory, you would specify the AssemblyKeyFile 51 | // attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] 52 | // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework 53 | // documentation for more information on this. 54 | // 55 | [assembly: AssemblyDelaySign(false)] 56 | [assembly: AssemblyKeyFile("")] 57 | [assembly: AssemblyKeyName("")] 58 | -------------------------------------------------------------------------------- /fit-gui/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | // 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | // 8 | [assembly: AssemblyTitle("")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("")] 13 | [assembly: AssemblyCopyright("")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 18 | // Version information for an assembly consists of the following four values: 19 | // 20 | // Major Version 21 | // Minor Version 22 | // Build Number 23 | // Revision 24 | // 25 | // You can specify all the values or you can default the Revision and Build Numbers 26 | // by using the '*' as shown below: 27 | 28 | [assembly: AssemblyVersion("1.0.*")] 29 | 30 | // 31 | // In order to sign your assembly you must specify a key to use. Refer to the 32 | // Microsoft .NET Framework documentation for more information on assembly signing. 33 | // 34 | // Use the attributes below to control which key is used for signing. 35 | // 36 | // Notes: 37 | // (*) If no key is specified, the assembly is not signed. 38 | // (*) KeyName refers to a key that has been installed in the Crypto Service 39 | // Provider (CSP) on your machine. KeyFile refers to a file which contains 40 | // a key. 41 | // (*) If the KeyFile and the KeyName values are both specified, the 42 | // following processing occurs: 43 | // (1) If the KeyName can be found in the CSP, that key is used. 44 | // (2) If the KeyName does not exist and the KeyFile does exist, the key 45 | // in the KeyFile is installed into the CSP and used. 46 | // (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. 47 | // When specifying the KeyFile, the location of the KeyFile should be 48 | // relative to the project output directory which is 49 | // %Project Directory%\obj\. For example, if your KeyFile is 50 | // located in the project directory, you would specify the AssemblyKeyFile 51 | // attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] 52 | // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework 53 | // documentation for more information on this. 54 | // 55 | [assembly: AssemblyDelaySign(false)] 56 | [assembly: AssemblyKeyFile("")] 57 | [assembly: AssemblyKeyName("")] 58 | -------------------------------------------------------------------------------- /FitGuiCommon/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | // 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | // 8 | [assembly: AssemblyTitle("")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("")] 13 | [assembly: AssemblyCopyright("")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 18 | // Version information for an assembly consists of the following four values: 19 | // 20 | // Major Version 21 | // Minor Version 22 | // Build Number 23 | // Revision 24 | // 25 | // You can specify all the values or you can default the Revision and Build Numbers 26 | // by using the '*' as shown below: 27 | 28 | [assembly: AssemblyVersion("1.0.*")] 29 | 30 | // 31 | // In order to sign your assembly you must specify a key to use. Refer to the 32 | // Microsoft .NET Framework documentation for more information on assembly signing. 33 | // 34 | // Use the attributes below to control which key is used for signing. 35 | // 36 | // Notes: 37 | // (*) If no key is specified, the assembly is not signed. 38 | // (*) KeyName refers to a key that has been installed in the Crypto Service 39 | // Provider (CSP) on your machine. KeyFile refers to a file which contains 40 | // a key. 41 | // (*) If the KeyFile and the KeyName values are both specified, the 42 | // following processing occurs: 43 | // (1) If the KeyName can be found in the CSP, that key is used. 44 | // (2) If the KeyName does not exist and the KeyFile does exist, the key 45 | // in the KeyFile is installed into the CSP and used. 46 | // (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. 47 | // When specifying the KeyFile, the location of the KeyFile should be 48 | // relative to the project output directory which is 49 | // %Project Directory%\obj\. For example, if your KeyFile is 50 | // located in the project directory, you would specify the AssemblyKeyFile 51 | // attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] 52 | // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework 53 | // documentation for more information on this. 54 | // 55 | [assembly: AssemblyDelaySign(false)] 56 | [assembly: AssemblyKeyFile("")] 57 | [assembly: AssemblyKeyName("")] 58 | -------------------------------------------------------------------------------- /ProgressBar/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | // 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | // 8 | [assembly: AssemblyTitle("")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("")] 13 | [assembly: AssemblyCopyright("")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 18 | // Version information for an assembly consists of the following four values: 19 | // 20 | // Major Version 21 | // Minor Version 22 | // Build Number 23 | // Revision 24 | // 25 | // You can specify all the values or you can default the Revision and Build Numbers 26 | // by using the '*' as shown below: 27 | 28 | [assembly: AssemblyVersion("1.0.*")] 29 | 30 | // 31 | // In order to sign your assembly you must specify a key to use. Refer to the 32 | // Microsoft .NET Framework documentation for more information on assembly signing. 33 | // 34 | // Use the attributes below to control which key is used for signing. 35 | // 36 | // Notes: 37 | // (*) If no key is specified, the assembly is not signed. 38 | // (*) KeyName refers to a key that has been installed in the Crypto Service 39 | // Provider (CSP) on your machine. KeyFile refers to a file which contains 40 | // a key. 41 | // (*) If the KeyFile and the KeyName values are both specified, the 42 | // following processing occurs: 43 | // (1) If the KeyName can be found in the CSP, that key is used. 44 | // (2) If the KeyName does not exist and the KeyFile does exist, the key 45 | // in the KeyFile is installed into the CSP and used. 46 | // (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. 47 | // When specifying the KeyFile, the location of the KeyFile should be 48 | // relative to the project output directory which is 49 | // %Project Directory%\obj\. For example, if your KeyFile is 50 | // located in the project directory, you would specify the AssemblyKeyFile 51 | // attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] 52 | // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework 53 | // documentation for more information on this. 54 | // 55 | [assembly: AssemblyDelaySign(false)] 56 | [assembly: AssemblyKeyFile("")] 57 | [assembly: AssemblyKeyName("")] 58 | -------------------------------------------------------------------------------- /Examples/Fixtures/Source/ExampleFixtures/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | 4 | // 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | // 9 | [assembly: AssemblyTitle("")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("")] 14 | [assembly: AssemblyCopyright("")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Revision and Build Numbers 27 | // by using the '*' as shown below: 28 | 29 | [assembly: AssemblyVersion("1.0.*")] 30 | 31 | // 32 | // In order to sign your assembly you must specify a key to use. Refer to the 33 | // Microsoft .NET Framework documentation for more information on assembly signing. 34 | // 35 | // Use the attributes below to control which key is used for signing. 36 | // 37 | // Notes: 38 | // (*) If no key is specified, the assembly is not signed. 39 | // (*) KeyName refers to a key that has been installed in the Crypto Service 40 | // Provider (CSP) on your machine. KeyFile refers to a file which contains 41 | // a key. 42 | // (*) If the KeyFile and the KeyName values are both specified, the 43 | // following processing occurs: 44 | // (1) If the KeyName can be found in the CSP, that key is used. 45 | // (2) If the KeyName does not exist and the KeyFile does exist, the key 46 | // in the KeyFile is installed into the CSP and used. 47 | // (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. 48 | // When specifying the KeyFile, the location of the KeyFile should be 49 | // relative to the project output directory which is 50 | // %Project Directory%\obj\. For example, if your KeyFile is 51 | // located in the project directory, you would specify the AssemblyKeyFile 52 | // attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] 53 | // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework 54 | // documentation for more information on this. 55 | // 56 | [assembly: AssemblyDelaySign(false)] 57 | [assembly: AssemblyKeyFile("")] 58 | [assembly: AssemblyKeyName("")] 59 | -------------------------------------------------------------------------------- /fit-gui-gtk/TestsFolder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using fit.gui.common; 4 | using Gtk; 5 | 6 | namespace fit.gui.gtk 7 | { 8 | public partial class TestsFolder : Gtk.Dialog 9 | { 10 | public string CurrentDirectory 11 | { 12 | get; 13 | private set; 14 | } 15 | 16 | public FitTestFolder FitTestFolder 17 | { 18 | get; 19 | private set; 20 | } 21 | 22 | public TestsFolder(string currentDirectory) 23 | { 24 | Build(); 25 | CurrentDirectory = currentDirectory; 26 | } 27 | 28 | private void SelectFolder(string title, Gtk.Entry entry, Window parent) 29 | { 30 | var dialog = new Gtk.FileChooserDialog(title, parent, 31 | FileChooserAction.SelectFolder, "Cancel", ResponseType.Cancel, 32 | "Select", ResponseType.Accept); 33 | try 34 | { 35 | if (Directory.Exists(entry.Text)) 36 | { 37 | dialog.SetCurrentFolder(entry.Text); 38 | } 39 | else 40 | { 41 | dialog.SetCurrentFolder(CurrentDirectory); 42 | } 43 | 44 | if (dialog.Run() == (int)ResponseType.Accept) 45 | { 46 | entry.Text = dialog.Filename; 47 | CurrentDirectory = dialog.CurrentFolder; 48 | } 49 | } 50 | finally 51 | { 52 | dialog.Destroy(); 53 | } 54 | } 55 | 56 | protected void OnButtonSpecificationsDirectoryPathClicked(object sender, EventArgs eventArgs) 57 | { 58 | SelectFolder("Select Specifications Directory", entrySpecificationsDirectoryPath, this); 59 | } 60 | 61 | protected void OnButtonResultsDirectoryPathClicked(object sender, EventArgs eventArgs) 62 | { 63 | SelectFolder("Select Results Directory", entryResultsDirectoryPath, this); 64 | } 65 | 66 | protected void OnButtonFixturesDirectoryPathClicked(object sender, EventArgs eventArgs) 67 | { 68 | SelectFolder("Select Fixtures Directory", entryFixturesDirectoryPath, this); 69 | } 70 | 71 | protected void OnButtonOkClicked(object sender, EventArgs eventArgs) 72 | { 73 | if (string.IsNullOrEmpty(entryFolderName.Text)) 74 | { 75 | entryFolderName.GrabFocus(); 76 | return; 77 | } 78 | 79 | if (!Directory.Exists(entrySpecificationsDirectoryPath.Text)) 80 | { 81 | entrySpecificationsDirectoryPath.GrabFocus(); 82 | return; 83 | } 84 | 85 | if (!Directory.Exists(entryResultsDirectoryPath.Text)) 86 | { 87 | entryResultsDirectoryPath.GrabFocus(); 88 | return; 89 | } 90 | 91 | if (!Directory.Exists(entryFixturesDirectoryPath.Text)) 92 | { 93 | entryFixturesDirectoryPath.GrabFocus(); 94 | return; 95 | } 96 | 97 | FitTestFolder fitTestFolder = new FitTestFolder(); 98 | fitTestFolder.FolderName = entryFolderName.Text; 99 | fitTestFolder.InputFolder = entrySpecificationsDirectoryPath.Text; 100 | fitTestFolder.OutputFolder = entryResultsDirectoryPath.Text; 101 | fitTestFolder.FixturePath = entryFixturesDirectoryPath.Text; 102 | FitTestFolder = fitTestFolder; 103 | 104 | Respond(ResponseType.Ok); 105 | } 106 | } 107 | } -------------------------------------------------------------------------------- /FitGuiCommon/FitTestContainer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.IO; 4 | using System.Reflection; 5 | using System.Xml.Serialization; 6 | 7 | namespace fit.gui.common 8 | { 9 | [Serializable] 10 | public class FitTestContainer 11 | { 12 | private Configuration configuration = null; 13 | private ArrayList fitTestFolders = new ArrayList(); 14 | 15 | public FitTestContainer(Configuration configuration) 16 | { 17 | this.configuration = configuration; 18 | } 19 | 20 | public void Remove(FitTestFolder fitTestFolder) 21 | { 22 | fitTestFolders.Remove(fitTestFolder); 23 | Save(); 24 | } 25 | 26 | private int InternalAdd(FitTestFolder fitTestFolder) 27 | { 28 | string[] filePatterns = fitTestFolder.FileMask.Split(';'); 29 | 30 | foreach (string filePattern in filePatterns) 31 | { 32 | DirectoryInfo directoryInfo = new DirectoryInfo(fitTestFolder.InputFolder); 33 | FileInfo[] files = directoryInfo.GetFiles(filePattern); 34 | for (int index = 0; index < files.Length; ++ index) 35 | { 36 | FitTestFile fitTestFile = new FitTestFile(); 37 | fitTestFile.FileName = files[index].Name; 38 | fitTestFile.ParentHashCode = fitTestFolder.GetHashCode(); 39 | fitTestFolder.Add(fitTestFile); 40 | } 41 | } 42 | return fitTestFolders.Add(fitTestFolder); 43 | } 44 | 45 | public int Add(FitTestFolder fitTestFolder) 46 | { 47 | int folderIndex = InternalAdd(fitTestFolder); 48 | Save(); 49 | return folderIndex; 50 | } 51 | 52 | public FitTestFolder this[int folderIndex] 53 | { 54 | get 55 | { 56 | return (FitTestFolder)fitTestFolders[folderIndex]; 57 | } 58 | 59 | set 60 | { 61 | fitTestFolders[folderIndex] = value; 62 | } 63 | } 64 | 65 | public int Count 66 | { 67 | get 68 | { 69 | return fitTestFolders.Count; 70 | } 71 | } 72 | 73 | public void ResetExecutedFlag() 74 | { 75 | for (int folderIndex = 0; folderIndex < Count; ++ folderIndex) 76 | { 77 | for (int fileIndex = 0; fileIndex < this[folderIndex].Count; ++ fileIndex) 78 | { 79 | this[folderIndex][fileIndex].isExecuted = false; 80 | } 81 | } 82 | } 83 | 84 | public void Save() 85 | { 86 | configuration.fitTestFolders = fitTestFolders; 87 | Configuration.Save(configuration); 88 | } 89 | 90 | public void Clear() 91 | { 92 | fitTestFolders.Clear(); 93 | } 94 | 95 | public void Load() 96 | { 97 | Clear(); 98 | foreach (FitTestFolder fitTestFolder in configuration.fitTestFolders) 99 | { 100 | InternalAdd(fitTestFolder); 101 | } 102 | } 103 | 104 | public FitTestFolder GetFolderByHashCode(int hashCode) 105 | { 106 | foreach (FitTestFolder fitTestFolder in fitTestFolders) 107 | { 108 | if (fitTestFolder.GetHashCode() == hashCode) 109 | { 110 | return fitTestFolder; 111 | } 112 | } 113 | return null; 114 | } 115 | 116 | public FitTestFile GetFileByHashCode(int hashCode) 117 | { 118 | foreach (FitTestFolder fitTestFolder in fitTestFolders) 119 | { 120 | for (int fileIndex = 0; fileIndex < fitTestFolder.Count; ++ fileIndex) 121 | { 122 | if (fitTestFolder[fileIndex].GetHashCode() == hashCode) 123 | { 124 | return fitTestFolder[fileIndex]; 125 | } 126 | } 127 | } 128 | return null; 129 | } 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /Runner/Runner.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Net; 4 | using System.Runtime.Remoting; 5 | using System.Runtime.Remoting.Channels; 6 | using System.Runtime.Remoting.Channels.Tcp; 7 | using fit.gui.common; 8 | 9 | namespace fit.gui 10 | { 11 | public class Runner : FileRunner 12 | { 13 | protected override void exit() 14 | { 15 | output.Close(); 16 | } 17 | } 18 | 19 | internal class RunnerApplication 20 | { 21 | private static void RegisterCommonDataAsRemotingClient() 22 | { 23 | IDictionary channelProperties = new Hashtable(); 24 | channelProperties["name"] = string.Empty; 25 | TcpChannel tcpChannel = new TcpChannel(channelProperties, null, null); 26 | ChannelServices.RegisterChannel(tcpChannel, false); 27 | WellKnownClientTypeEntry wellKnownClientTypeEntry = 28 | new WellKnownClientTypeEntry(typeof(CommonData), 29 | new UriBuilder("tcp", IPAddress.Loopback.ToString(), 8765, typeof(CommonData).Name).ToString()); 30 | RemotingConfiguration.RegisterWellKnownClientType(wellKnownClientTypeEntry); 31 | } 32 | 33 | [STAThread] 34 | private static void Main(string[] args) 35 | { 36 | if (args.Length != 3) 37 | return; 38 | 39 | RegisterCommonDataAsRemotingClient(); 40 | 41 | CommonData commonData = new CommonData(); 42 | 43 | Runner runner = new Runner(); 44 | 45 | runner.run(args); 46 | 47 | TestRunProperties testRunProperties; 48 | 49 | testRunProperties.countsRight = runner.fixture.counts.right; 50 | testRunProperties.countsWrong = runner.fixture.counts.wrong; 51 | testRunProperties.countsIgnores = runner.fixture.counts.ignores; 52 | testRunProperties.countsExceptions = runner.fixture.counts.exceptions; 53 | 54 | if (runner.fixture.summary.ContainsKey(CommonData.OUTPUT_FILE)) 55 | { 56 | testRunProperties.OutputFile = (string)runner.fixture.summary[CommonData.OUTPUT_FILE]; 57 | } 58 | else 59 | { 60 | testRunProperties.OutputFile = ""; 61 | } 62 | 63 | if (runner.fixture.summary.ContainsKey(CommonData.INPUT_UPDATE)) 64 | { 65 | testRunProperties.InputUpdate = (DateTime)runner.fixture.summary[CommonData.INPUT_UPDATE]; 66 | } 67 | else 68 | { 69 | testRunProperties.InputUpdate = DateTime.MinValue; 70 | } 71 | 72 | if (runner.fixture.summary.ContainsKey(CommonData.FIXTURE_PATH)) 73 | { 74 | testRunProperties.FixturePath = (string)runner.fixture.summary[CommonData.FIXTURE_PATH]; 75 | } 76 | else 77 | { 78 | testRunProperties.FixturePath = ""; 79 | } 80 | 81 | if (runner.fixture.summary.ContainsKey(CommonData.RUN_DATE)) 82 | { 83 | testRunProperties.RunDate = (DateTime)runner.fixture.summary[CommonData.RUN_DATE]; 84 | } 85 | else 86 | { 87 | testRunProperties.RunDate = DateTime.MinValue; 88 | } 89 | 90 | if (runner.fixture.summary.ContainsKey(CommonData.INPUT_FILE)) 91 | { 92 | testRunProperties.InputFile = (string)runner.fixture.summary[CommonData.INPUT_FILE]; 93 | } 94 | else 95 | { 96 | testRunProperties.InputFile = ""; 97 | } 98 | 99 | if (runner.fixture.summary.ContainsKey(CommonData.RUN_ELAPSED_TIME)) 100 | { 101 | testRunProperties.RunElapsedTime = (string)runner.fixture.summary[CommonData.RUN_ELAPSED_TIME].ToString(); 102 | } 103 | else 104 | { 105 | testRunProperties.RunElapsedTime = "0:00.00"; 106 | } 107 | 108 | commonData.TestRunProperties = testRunProperties; 109 | } 110 | } 111 | } -------------------------------------------------------------------------------- /fit-gui.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "fit.gui.common", "FitGuiCommon\fit.gui.common.csproj", "{47E60C7A-01CA-4DBF-A5F0-E64B84A4DBA4}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "fit.gui.runner", "Runner\fit.gui.runner.csproj", "{2FA70072-EA56-4380-ABE3-B3BB240244D2}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProgressBar", "ProgressBar\ProgressBar.csproj", "{469F4ACE-4373-41F7-8F97-19908FAD452C}" 9 | EndProject 10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "fit-gui", "fit-gui\fit-gui.csproj", "{82D2341D-A7F1-43BD-AA0D-A4FCF97B2FAF}" 11 | EndProject 12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "fit.gui.gtk", "fit-gui-gtk\fit.gui.gtk.csproj", "{E9049BF6-085B-41CA-A4DE-7902E17DA682}" 13 | EndProject 14 | Global 15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 16 | Debug|Any CPU = Debug|Any CPU 17 | Release|Any CPU = Release|Any CPU 18 | Linux Debug|Any CPU = Linux Debug|Any CPU 19 | EndGlobalSection 20 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 21 | {2FA70072-EA56-4380-ABE3-B3BB240244D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 22 | {2FA70072-EA56-4380-ABE3-B3BB240244D2}.Debug|Any CPU.Build.0 = Debug|Any CPU 23 | {2FA70072-EA56-4380-ABE3-B3BB240244D2}.Linux Debug|Any CPU.ActiveCfg = Linux Debug|Any CPU 24 | {2FA70072-EA56-4380-ABE3-B3BB240244D2}.Linux Debug|Any CPU.Build.0 = Linux Debug|Any CPU 25 | {2FA70072-EA56-4380-ABE3-B3BB240244D2}.Release|Any CPU.ActiveCfg = Release|Any CPU 26 | {2FA70072-EA56-4380-ABE3-B3BB240244D2}.Release|Any CPU.Build.0 = Release|Any CPU 27 | {469F4ACE-4373-41F7-8F97-19908FAD452C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 28 | {469F4ACE-4373-41F7-8F97-19908FAD452C}.Debug|Any CPU.Build.0 = Debug|Any CPU 29 | {469F4ACE-4373-41F7-8F97-19908FAD452C}.Linux Debug|Any CPU.ActiveCfg = Linux Debug|Any CPU 30 | {469F4ACE-4373-41F7-8F97-19908FAD452C}.Release|Any CPU.ActiveCfg = Release|Any CPU 31 | {469F4ACE-4373-41F7-8F97-19908FAD452C}.Release|Any CPU.Build.0 = Release|Any CPU 32 | {47E60C7A-01CA-4DBF-A5F0-E64B84A4DBA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 33 | {47E60C7A-01CA-4DBF-A5F0-E64B84A4DBA4}.Debug|Any CPU.Build.0 = Debug|Any CPU 34 | {47E60C7A-01CA-4DBF-A5F0-E64B84A4DBA4}.Linux Debug|Any CPU.ActiveCfg = Linux Debug|Any CPU 35 | {47E60C7A-01CA-4DBF-A5F0-E64B84A4DBA4}.Linux Debug|Any CPU.Build.0 = Linux Debug|Any CPU 36 | {47E60C7A-01CA-4DBF-A5F0-E64B84A4DBA4}.Release|Any CPU.ActiveCfg = Release|Any CPU 37 | {47E60C7A-01CA-4DBF-A5F0-E64B84A4DBA4}.Release|Any CPU.Build.0 = Release|Any CPU 38 | {82D2341D-A7F1-43BD-AA0D-A4FCF97B2FAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 39 | {82D2341D-A7F1-43BD-AA0D-A4FCF97B2FAF}.Debug|Any CPU.Build.0 = Debug|Any CPU 40 | {82D2341D-A7F1-43BD-AA0D-A4FCF97B2FAF}.Linux Debug|Any CPU.ActiveCfg = Linux Debug|Any CPU 41 | {82D2341D-A7F1-43BD-AA0D-A4FCF97B2FAF}.Release|Any CPU.ActiveCfg = Release|Any CPU 42 | {82D2341D-A7F1-43BD-AA0D-A4FCF97B2FAF}.Release|Any CPU.Build.0 = Release|Any CPU 43 | {E9049BF6-085B-41CA-A4DE-7902E17DA682}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 44 | {E9049BF6-085B-41CA-A4DE-7902E17DA682}.Linux Debug|Any CPU.ActiveCfg = Linux Debug|Any CPU 45 | {E9049BF6-085B-41CA-A4DE-7902E17DA682}.Linux Debug|Any CPU.Build.0 = Linux Debug|Any CPU 46 | {E9049BF6-085B-41CA-A4DE-7902E17DA682}.Release|Any CPU.ActiveCfg = Release|Any CPU 47 | EndGlobalSection 48 | GlobalSection(MonoDevelopProperties) = preSolution 49 | StartupItem = fit-gui-gtk\fit.gui.gtk.csproj 50 | EndGlobalSection 51 | EndGlobal 52 | -------------------------------------------------------------------------------- /FitGuiCommon/fit.gui.common.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Debug 24 | AnyCPU 25 | 8.0.50727 26 | 2.0 27 | {47E60C7A-01CA-4DBF-A5F0-E64B84A4DBA4} 28 | Library 29 | fit.gui.common 30 | 31 | 32 | true 33 | full 34 | false 35 | bin\Debug\ 36 | 4 37 | false 38 | FitGuiCommon 39 | 40 | 41 | none 42 | false 43 | bin\Release\ 44 | 4 45 | false 46 | FitGuiCommon 47 | 48 | 49 | full 50 | false 51 | ..\output\bin 52 | 4 53 | true 54 | true 55 | fit.gui.common 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /ProgressBar/ProgressBar.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | Debug 27 | AnyCPU 28 | 8.0.50727 29 | 2.0 30 | {469F4ACE-4373-41F7-8F97-19908FAD452C} 31 | Library 32 | fit.gui 33 | ProgressBar 34 | 35 | 36 | true 37 | full 38 | false 39 | bin\Debug\ 40 | 4 41 | false 42 | 43 | 44 | none 45 | false 46 | bin\Release\ 47 | 4 48 | false 49 | 50 | 51 | none 52 | false 53 | bin\Linux Debug 54 | 4 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | ProgressBar.cs 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /Examples/Fixtures/Source/ExampleFixtures/ExampleFixtures.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | Debug 25 | AnyCPU 26 | 8.0.50727 27 | 2.0 28 | {EAC63A46-31D2-4693-B6F6-AF1892D45B8A} 29 | Library 30 | fit.gui.examples 31 | 32 | 33 | true 34 | full 35 | false 36 | bin\Debug\ 37 | 4 38 | false 39 | v4.0 40 | ConnectionFixture 41 | 42 | 43 | none 44 | false 45 | bin\Release\ 46 | 4 47 | false 48 | v4.0 49 | ConnectionFixture 50 | 51 | 52 | full 53 | false 54 | ..\..\output\bin 55 | 4 56 | true 57 | true 58 | ExampleFixtures 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | ..\fit\fit.dll 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /Runner/fit.gui.runner.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | Debug 28 | AnyCPU 29 | 8.0.50727 30 | 2.0 31 | {2FA70072-EA56-4380-ABE3-B3BB240244D2} 32 | WinExe 33 | fit.gui.runner 34 | 35 | 36 | true 37 | full 38 | false 39 | bin\Debug\ 40 | 4 41 | false 42 | Runner 43 | 44 | 45 | none 46 | false 47 | bin\Release\ 48 | 4 49 | false 50 | Runner 51 | 52 | 53 | full 54 | false 55 | ..\output\bin 56 | 4 57 | true 58 | true 59 | fit.gui.runner 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | ..\Examples\Fixtures\Source\fit\fit.dll 75 | 76 | 77 | 78 | 79 | {47E60C7A-01CA-4DBF-A5F0-E64B84A4DBA4} 80 | fit.gui.common 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /fit-gui-gtk/fit.gui.gtk.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | 10.0.0 7 | 2.0 8 | {E9049BF6-085B-41CA-A4DE-7902E17DA682} 9 | WinExe 10 | fit.gui.gtk 11 | fit.gui.gtk 12 | 13 | 14 | true 15 | full 16 | false 17 | ..\output\bin 18 | DEBUG; 19 | prompt 20 | 4 21 | false 22 | 23 | 24 | none 25 | true 26 | ..\output\bin 27 | prompt 28 | 4 29 | false 30 | 31 | 32 | full 33 | false 34 | ..\output\bin 35 | 4 36 | true 37 | true 38 | 39 | 40 | 41 | 42 | False 43 | gtk-sharp-2.0 44 | 45 | 46 | False 47 | gtk-sharp-2.0 48 | 49 | 50 | False 51 | glib-sharp-2.0 52 | 53 | 54 | False 55 | glade-sharp-2.0 56 | 57 | 58 | False 59 | gtk-sharp-2.0 60 | 61 | 62 | False 63 | gtk-sharp-2.0 64 | 65 | 66 | 67 | False 68 | webkit-sharp-1.0 69 | 70 | 71 | 72 | 73 | gui.stetic 74 | 75 | 76 | true 77 | 78 | 79 | true 80 | 81 | 82 | true 83 | 84 | 85 | true 86 | 87 | 88 | true 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | {47E60C7A-01CA-4DBF-A5F0-E64B84A4DBA4} 106 | fit.gui.common 107 | 108 | 109 | 110 | 111 | PreserveNewest 112 | 113 | 114 | PreserveNewest 115 | 116 | 117 | -------------------------------------------------------------------------------- /FitGuiCommon/FitTestRunner.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading; 3 | using System.IO; 4 | using System.Reflection; 5 | using System.Runtime.Remoting; 6 | using System.Runtime.Remoting.Channels; 7 | using System.Runtime.Remoting.Channels.Tcp; 8 | using System.Collections; 9 | using System.Collections.Generic; 10 | 11 | namespace fit.gui.common 12 | { 13 | public delegate void FitTestRunStartedEventDelegate(int numberOfTestsToDo); 14 | 15 | public delegate void FitTestRunStoppedEventDelegate(bool isAborted); 16 | 17 | public delegate void FitTestStartedEventDelegate(FitTestFile fitTestFile); 18 | 19 | public delegate void FitTestStoppedEventDelegate(FitTestFile fitTestFile); 20 | 21 | public enum FitTestRunnerStates 22 | { 23 | Idle, 24 | Running, 25 | Stopping 26 | } 27 | 28 | public class ErrorEventArgs : EventArgs 29 | { 30 | public ErrorEventArgs(Exception exception) 31 | { 32 | Exception = exception; 33 | } 34 | 35 | public Exception Exception 36 | { 37 | get; 38 | private set; 39 | } 40 | } 41 | 42 | public class FitTestRunner 43 | { 44 | private const string Runner = "fit.gui.runner.exe"; 45 | private Thread _workerThread = null; 46 | private FitTestContainer _fitTestContainer = null; 47 | private ManualResetEvent _stopJobEvent = new ManualResetEvent(false); 48 | private FitTestFile[] _fitTestFiles = null; 49 | private CommonData _commonData = new CommonData(); 50 | private FitTestRunnerStates _state = FitTestRunnerStates.Idle; 51 | 52 | public FitTestRunnerStates State 53 | { 54 | get 55 | { 56 | lock (this) 57 | { 58 | return _state; 59 | } 60 | } 61 | set 62 | { 63 | lock (this) 64 | { 65 | _state = value; 66 | } 67 | } 68 | } 69 | 70 | public event FitTestRunStartedEventDelegate FitTestRunStartedEventSink; 71 | public event FitTestRunStoppedEventDelegate FitTestRunStoppedEventSink; 72 | public event FitTestStartedEventDelegate FitTestStartedEventSink; 73 | public event FitTestStoppedEventDelegate FitTestStoppedEventSink; 74 | public event EventHandler ErrorEvent; 75 | 76 | public FitTestRunner(FitTestContainer fitTestContainer) 77 | { 78 | this._fitTestContainer = fitTestContainer; 79 | RegisterCommonDataAsRemotingServer(); 80 | } 81 | 82 | private void StartWorkerThread() 83 | { 84 | _stopJobEvent.Reset(); 85 | State = FitTestRunnerStates.Running; 86 | _workerThread = new Thread(new ThreadStart(WorkerThreadProc)); 87 | _workerThread.Start(); 88 | } 89 | 90 | private void RegisterCommonDataAsRemotingServer() 91 | { 92 | IDictionary channelProperties = new Hashtable(); 93 | channelProperties["name"] = string.Empty; 94 | channelProperties["port"] = 8765; 95 | TcpChannel tcpChannel = new TcpChannel(channelProperties, null, null); 96 | ChannelServices.RegisterChannel(tcpChannel, false); 97 | RemotingServices.Marshal(_commonData, typeof(CommonData).Name); 98 | } 99 | 100 | public void WorkerThreadProc() 101 | { 102 | try 103 | { 104 | bool isAborted = false; 105 | FitTestRunStartedEventSink(_fitTestFiles.Length); 106 | 107 | for (int fileIndex = 0; fileIndex < _fitTestFiles.Length; ++ fileIndex) 108 | { 109 | FitTestFile fitTestFile = _fitTestFiles[fileIndex]; 110 | FitTestStartedEventSink(fitTestFile); 111 | RunFitTest(_fitTestContainer.GetFolderByHashCode(fitTestFile.ParentHashCode), fitTestFile); 112 | FitTestStoppedEventSink(fitTestFile); 113 | if (_stopJobEvent.WaitOne(0, false)) 114 | { 115 | isAborted = true; 116 | break; 117 | } 118 | } 119 | 120 | State = FitTestRunnerStates.Idle; 121 | FitTestRunStoppedEventSink(isAborted); 122 | } 123 | catch (Exception exception) 124 | { 125 | if (ErrorEvent != null) 126 | { 127 | ErrorEvent(this, new ErrorEventArgs(exception)); 128 | } 129 | } 130 | } 131 | 132 | private void RunFitTest(FitTestFolder fitTestFolder, FitTestFile fitTestFile) 133 | { 134 | fitTestFile.TestRunProperties = ExecuteFit( 135 | Path.Combine(fitTestFolder.InputFolder, fitTestFile.FileName), 136 | Path.Combine(fitTestFolder.OutputFolder, fitTestFile.FileName), 137 | fitTestFolder.FixturePath); 138 | fitTestFile.isExecuted = true; 139 | } 140 | 141 | private TestRunProperties ExecuteFit(string inputFile, string outputFile, string fixturePath) 142 | { 143 | AppDomainSetup setup = new AppDomainSetup(); 144 | setup.ApplicationBase = fixturePath.Split(';')[0]; 145 | AppDomain fitGuiRunnerDomain = AppDomain.CreateDomain("RunnerDomain", null, setup); 146 | try 147 | { 148 | string executingAssemblyPath = Path.GetDirectoryName( 149 | Assembly.GetExecutingAssembly().CodeBase.Replace("file://", "")); 150 | string[] args = {inputFile, outputFile, fixturePath}; 151 | fitGuiRunnerDomain.ExecuteAssembly(Path.Combine(executingAssemblyPath, Runner), args); 152 | } 153 | catch 154 | { 155 | AppDomain.Unload(fitGuiRunnerDomain); 156 | throw; 157 | } 158 | 159 | return _commonData.TestRunProperties; 160 | } 161 | 162 | public void Run(FitTestFile[] fitTestFiles) 163 | { 164 | _fitTestFiles = fitTestFiles; 165 | StartWorkerThread(); 166 | } 167 | 168 | public void RunFile(FitTestFile fitTestFile) 169 | { 170 | Run(new FitTestFile[] { fitTestFile }); 171 | } 172 | 173 | public void RunFolder(FitTestFolder fitTestFolder) 174 | { 175 | var fitTestFiles = new List(); 176 | for (int fileIndex = 0; fileIndex < fitTestFolder.Count; ++ fileIndex) 177 | { 178 | fitTestFiles.Add(fitTestFolder[fileIndex]); 179 | } 180 | Run(fitTestFiles.ToArray()); 181 | } 182 | 183 | public void Stop() 184 | { 185 | if (State == FitTestRunnerStates.Running) 186 | { 187 | State = FitTestRunnerStates.Stopping; 188 | _stopJobEvent.Set(); 189 | } 190 | } 191 | } 192 | } -------------------------------------------------------------------------------- /ProgressBar/ProgressBar.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing; 3 | using System.Windows.Forms; 4 | 5 | namespace fit.gui 6 | { 7 | public class ProgressBar : UserControl 8 | { 9 | private System.ComponentModel.Container components = null; 10 | 11 | private int internalStep = 10; 12 | 13 | public int Step 14 | { 15 | get 16 | { 17 | return internalStep; 18 | } 19 | set 20 | { 21 | internalStep = value; 22 | } 23 | } 24 | 25 | private Color color = Color.Navy; 26 | 27 | public Color Color 28 | { 29 | get 30 | { 31 | return color; 32 | } 33 | 34 | set 35 | { 36 | color = value; 37 | 38 | Invalidate(); 39 | } 40 | } 41 | 42 | public void PerformStep() 43 | { 44 | Increment(internalStep); 45 | } 46 | 47 | public void Increment(int value) 48 | { 49 | Value += value; 50 | } 51 | 52 | protected override void OnResize(EventArgs e) 53 | { 54 | Invalidate(); 55 | } 56 | 57 | protected override void OnPaint(PaintEventArgs eventArgs) 58 | { 59 | Graphics graphics = eventArgs.Graphics; 60 | 61 | using (SolidBrush brush = new SolidBrush(color)) 62 | { 63 | float percent = (float)(internalValue - internalMinimum) / (float)(internalMaximum - internalMinimum); 64 | Rectangle rectangle = ClientRectangle; 65 | 66 | rectangle.Width = (int)((float)rectangle.Width * percent); 67 | 68 | graphics.FillRectangle(brush, rectangle); 69 | 70 | Draw3DBorder(graphics); 71 | } 72 | } 73 | 74 | private int internalMinimum = 0; 75 | 76 | public int Minimum 77 | { 78 | get 79 | { 80 | return internalMinimum; 81 | } 82 | 83 | set 84 | { 85 | if (value < 0) 86 | { 87 | internalMinimum = 0; 88 | } 89 | else 90 | { 91 | if (value > internalMaximum) 92 | { 93 | internalMinimum = internalMaximum; 94 | } 95 | else 96 | { 97 | internalMinimum = value; 98 | } 99 | } 100 | 101 | FixValueIfLessThanMinimum(); 102 | Invalidate(); 103 | } 104 | } 105 | 106 | private void FixValueIfLessThanMinimum() 107 | { 108 | if (internalValue < internalMinimum) 109 | { 110 | internalValue = internalMinimum; 111 | } 112 | } 113 | 114 | private int internalMaximum = 100; 115 | 116 | public int Maximum 117 | { 118 | get 119 | { 120 | return internalMaximum; 121 | } 122 | 123 | set 124 | { 125 | if (value < internalMinimum) 126 | { 127 | internalMaximum = internalMinimum; 128 | } 129 | else 130 | { 131 | internalMaximum = value; 132 | } 133 | 134 | FixValueIfMoreThanMaximum(); 135 | Invalidate(); 136 | } 137 | } 138 | 139 | private void FixValueIfMoreThanMaximum() 140 | { 141 | if (internalValue > internalMaximum) 142 | { 143 | internalValue = internalMaximum; 144 | } 145 | } 146 | 147 | private int internalValue = 0; 148 | 149 | public int Value 150 | { 151 | get 152 | { 153 | return internalValue; 154 | } 155 | 156 | set 157 | { 158 | int oldInternalValue = internalValue; 159 | 160 | if (value < internalMinimum) 161 | { 162 | internalValue = internalMinimum; 163 | } 164 | else 165 | { 166 | if (value > internalMaximum) 167 | { 168 | internalValue = internalMaximum; 169 | } 170 | else 171 | { 172 | internalValue = value; 173 | } 174 | } 175 | 176 | InvalidateChangedArea(oldInternalValue, internalValue); 177 | } 178 | } 179 | 180 | private void InvalidateChangedArea(int oldValue, int newValue) 181 | { 182 | float percent; 183 | 184 | Rectangle newValueRect = ClientRectangle; 185 | Rectangle oldValueRect = ClientRectangle; 186 | 187 | percent = (float)(newValue - internalMinimum) / (float)(internalMaximum - internalMinimum); 188 | newValueRect.Width = (int)((float)newValueRect.Width * percent); 189 | 190 | percent = (float)(oldValue - internalMinimum) / (float)(internalMaximum - internalMinimum); 191 | oldValueRect.Width = (int)((float)oldValueRect.Width * percent); 192 | 193 | Rectangle updateRect = new Rectangle(); 194 | 195 | if (newValueRect.Width > oldValueRect.Width) 196 | { 197 | updateRect.X = oldValueRect.Size.Width; 198 | updateRect.Width = newValueRect.Width - oldValueRect.Width; 199 | } 200 | else 201 | { 202 | updateRect.X = newValueRect.Size.Width; 203 | updateRect.Width = oldValueRect.Width - newValueRect.Width; 204 | } 205 | 206 | updateRect.Height = Height; 207 | 208 | Invalidate(updateRect); 209 | } 210 | 211 | private void Draw3DBorder(Graphics g) 212 | { 213 | int PenWidth = (int)Pens.White.Width; 214 | 215 | g.DrawLine(Pens.DarkGray, 216 | new Point(this.ClientRectangle.Left, this.ClientRectangle.Top), 217 | new Point(this.ClientRectangle.Width - PenWidth, this.ClientRectangle.Top)); 218 | g.DrawLine(Pens.DarkGray, 219 | new Point(this.ClientRectangle.Left, this.ClientRectangle.Top), 220 | new Point(this.ClientRectangle.Left, this.ClientRectangle.Height - PenWidth)); 221 | g.DrawLine(Pens.White, 222 | new Point(this.ClientRectangle.Left, this.ClientRectangle.Height - PenWidth), 223 | new Point(this.ClientRectangle.Width - PenWidth, this.ClientRectangle.Height - PenWidth)); 224 | g.DrawLine(Pens.White, 225 | new Point(this.ClientRectangle.Width - PenWidth, this.ClientRectangle.Top), 226 | new Point(this.ClientRectangle.Width - PenWidth, this.ClientRectangle.Height - PenWidth)); 227 | } 228 | 229 | public ProgressBar() 230 | { 231 | InitializeComponent(); 232 | } 233 | 234 | protected override void Dispose(bool disposing) 235 | { 236 | if (disposing) 237 | { 238 | if (components != null) 239 | { 240 | components.Dispose(); 241 | } 242 | } 243 | base.Dispose(disposing); 244 | } 245 | 246 | private void InitializeComponent() 247 | { 248 | // 249 | // ProgressBar 250 | // 251 | this.Name = "ProgressBar"; 252 | this.Size = new System.Drawing.Size(248, 24); 253 | 254 | } 255 | } 256 | } 257 | -------------------------------------------------------------------------------- /ProgressBar/ProgressBar.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | text/microsoft-resx 90 | 91 | 92 | 1.3 93 | 94 | 95 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 96 | 97 | 98 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 99 | 100 | 101 | ProgressBar 102 | 103 | 104 | False 105 | 106 | 107 | False 108 | 109 | 110 | True 111 | 112 | 113 | True 114 | 115 | 116 | 80 117 | 118 | 119 | (Default) 120 | 121 | 122 | False 123 | 124 | 125 | Private 126 | 127 | 128 | 8, 8 129 | 130 | -------------------------------------------------------------------------------- /Examples/Fixtures/Source/Fixtures.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExampleFixtures", "ExampleFixtures\ExampleFixtures.csproj", "{EAC63A46-31D2-4693-B6F6-AF1892D45B8A}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Any CPU = Debug|Any CPU 9 | Release|Any CPU = Release|Any CPU 10 | Linux Debug|Any CPU = Linux Debug|Any CPU 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {EAC63A46-31D2-4693-B6F6-AF1892D45B8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 14 | {EAC63A46-31D2-4693-B6F6-AF1892D45B8A}.Debug|Any CPU.Build.0 = Debug|Any CPU 15 | {EAC63A46-31D2-4693-B6F6-AF1892D45B8A}.Linux Debug|Any CPU.ActiveCfg = Linux Debug|Any CPU 16 | {EAC63A46-31D2-4693-B6F6-AF1892D45B8A}.Linux Debug|Any CPU.Build.0 = Linux Debug|Any CPU 17 | {EAC63A46-31D2-4693-B6F6-AF1892D45B8A}.Release|Any CPU.ActiveCfg = Release|Any CPU 18 | {EAC63A46-31D2-4693-B6F6-AF1892D45B8A}.Release|Any CPU.Build.0 = Release|Any CPU 19 | EndGlobalSection 20 | GlobalSection(MonoDevelopProperties) = preSolution 21 | StartupItem = ExampleFixtures\ExampleFixtures.csproj 22 | Policies = $0 23 | $0.DotNetNamingPolicy = $1 24 | $1.DirectoryNamespaceAssociation = None 25 | $1.ResourceNamePolicy = FileFormatDefault 26 | $0.StandardHeader = $2 27 | $2.Text = 28 | $2.IncludeInNewFiles = True 29 | $0.NameConventionPolicy = $3 30 | $3.Rules = $4 31 | $4.NamingRule = $5 32 | $5.Name = Namespaces 33 | $5.AffectedEntity = Namespace 34 | $5.VisibilityMask = VisibilityMask 35 | $5.NamingStyle = PascalCase 36 | $5.IncludeInstanceMembers = True 37 | $5.IncludeStaticEntities = True 38 | $4.NamingRule = $6 39 | $6.Name = Types 40 | $6.AffectedEntity = Class, Struct, Enum, Delegate 41 | $6.VisibilityMask = VisibilityMask 42 | $6.NamingStyle = PascalCase 43 | $6.IncludeInstanceMembers = True 44 | $6.IncludeStaticEntities = True 45 | $4.NamingRule = $7 46 | $7.Name = Interfaces 47 | $7.RequiredPrefixes = $8 48 | $8.String = I 49 | $7.AffectedEntity = Interface 50 | $7.VisibilityMask = VisibilityMask 51 | $7.NamingStyle = PascalCase 52 | $7.IncludeInstanceMembers = True 53 | $7.IncludeStaticEntities = True 54 | $4.NamingRule = $9 55 | $9.Name = Attributes 56 | $9.RequiredSuffixes = $10 57 | $10.String = Attribute 58 | $9.AffectedEntity = CustomAttributes 59 | $9.VisibilityMask = VisibilityMask 60 | $9.NamingStyle = PascalCase 61 | $9.IncludeInstanceMembers = True 62 | $9.IncludeStaticEntities = True 63 | $4.NamingRule = $11 64 | $11.Name = Event Arguments 65 | $11.RequiredSuffixes = $12 66 | $12.String = EventArgs 67 | $11.AffectedEntity = CustomEventArgs 68 | $11.VisibilityMask = VisibilityMask 69 | $11.NamingStyle = PascalCase 70 | $11.IncludeInstanceMembers = True 71 | $11.IncludeStaticEntities = True 72 | $4.NamingRule = $13 73 | $13.Name = Exceptions 74 | $13.RequiredSuffixes = $14 75 | $14.String = Exception 76 | $13.AffectedEntity = CustomExceptions 77 | $13.VisibilityMask = VisibilityMask 78 | $13.NamingStyle = PascalCase 79 | $13.IncludeInstanceMembers = True 80 | $13.IncludeStaticEntities = True 81 | $4.NamingRule = $15 82 | $15.Name = Methods 83 | $15.AffectedEntity = Methods 84 | $15.VisibilityMask = VisibilityMask 85 | $15.NamingStyle = PascalCase 86 | $15.IncludeInstanceMembers = True 87 | $15.IncludeStaticEntities = True 88 | $4.NamingRule = $16 89 | $16.Name = Static Readonly Fields 90 | $16.AffectedEntity = ReadonlyField 91 | $16.VisibilityMask = Internal, Protected, Public 92 | $16.NamingStyle = PascalCase 93 | $16.IncludeInstanceMembers = False 94 | $16.IncludeStaticEntities = True 95 | $4.NamingRule = $17 96 | $17.Name = Fields (Non Private) 97 | $17.AffectedEntity = Field 98 | $17.VisibilityMask = Internal, Protected, Public 99 | $17.NamingStyle = PascalCase 100 | $17.IncludeInstanceMembers = True 101 | $17.IncludeStaticEntities = True 102 | $4.NamingRule = $18 103 | $18.Name = ReadOnly Fields (Non Private) 104 | $18.AffectedEntity = ReadonlyField 105 | $18.VisibilityMask = Internal, Protected, Public 106 | $18.NamingStyle = PascalCase 107 | $18.IncludeInstanceMembers = True 108 | $18.IncludeStaticEntities = False 109 | $4.NamingRule = $19 110 | $19.Name = Fields (Private) 111 | $19.AllowedPrefixes = $20 112 | $20.String = _ 113 | $20.String = m_ 114 | $19.AffectedEntity = Field, ReadonlyField 115 | $19.VisibilityMask = Private 116 | $19.NamingStyle = CamelCase 117 | $19.IncludeInstanceMembers = True 118 | $19.IncludeStaticEntities = False 119 | $4.NamingRule = $21 120 | $21.Name = Static Fields (Private) 121 | $21.AffectedEntity = Field 122 | $21.VisibilityMask = Private 123 | $21.NamingStyle = CamelCase 124 | $21.IncludeInstanceMembers = False 125 | $21.IncludeStaticEntities = True 126 | $4.NamingRule = $22 127 | $22.Name = ReadOnly Fields (Private) 128 | $22.AllowedPrefixes = $23 129 | $23.String = _ 130 | $23.String = m_ 131 | $22.AffectedEntity = ReadonlyField 132 | $22.VisibilityMask = Private 133 | $22.NamingStyle = CamelCase 134 | $22.IncludeInstanceMembers = True 135 | $22.IncludeStaticEntities = False 136 | $4.NamingRule = $24 137 | $24.Name = Constant Fields 138 | $24.AffectedEntity = ConstantField 139 | $24.VisibilityMask = VisibilityMask 140 | $24.NamingStyle = PascalCase 141 | $24.IncludeInstanceMembers = True 142 | $24.IncludeStaticEntities = True 143 | $4.NamingRule = $25 144 | $25.Name = Properties 145 | $25.AffectedEntity = Property 146 | $25.VisibilityMask = VisibilityMask 147 | $25.NamingStyle = PascalCase 148 | $25.IncludeInstanceMembers = True 149 | $25.IncludeStaticEntities = True 150 | $4.NamingRule = $26 151 | $26.Name = Events 152 | $26.AffectedEntity = Event 153 | $26.VisibilityMask = VisibilityMask 154 | $26.NamingStyle = PascalCase 155 | $26.IncludeInstanceMembers = True 156 | $26.IncludeStaticEntities = True 157 | $4.NamingRule = $27 158 | $27.Name = Enum Members 159 | $27.AffectedEntity = EnumMember 160 | $27.VisibilityMask = VisibilityMask 161 | $27.NamingStyle = PascalCase 162 | $27.IncludeInstanceMembers = True 163 | $27.IncludeStaticEntities = True 164 | $4.NamingRule = $28 165 | $28.Name = Parameters 166 | $28.AffectedEntity = Parameter 167 | $28.VisibilityMask = VisibilityMask 168 | $28.NamingStyle = CamelCase 169 | $28.IncludeInstanceMembers = True 170 | $28.IncludeStaticEntities = True 171 | $4.NamingRule = $29 172 | $29.Name = Type Parameters 173 | $29.RequiredPrefixes = $30 174 | $30.String = T 175 | $29.AffectedEntity = TypeParameter 176 | $29.VisibilityMask = VisibilityMask 177 | $29.NamingStyle = PascalCase 178 | $29.IncludeInstanceMembers = True 179 | $29.IncludeStaticEntities = True 180 | EndGlobalSection 181 | EndGlobal 182 | -------------------------------------------------------------------------------- /fit-gui/fit-gui.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | Debug 44 | AnyCPU 45 | 8.0.50727 46 | 2.0 47 | {82D2341D-A7F1-43BD-AA0D-A4FCF97B2FAF} 48 | WinExe 49 | fit.gui 50 | fit-gui 51 | 52 | 53 | true 54 | full 55 | false 56 | bin\Debug\ 57 | 4 58 | false 59 | 60 | 61 | none 62 | false 63 | bin\Release\ 64 | 4 65 | false 66 | 67 | 68 | none 69 | false 70 | bin\Linux Debug 71 | 4 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | AboutForm.cs 82 | 83 | 84 | AddFolderForm.cs 85 | 86 | 87 | MainForm.cs 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | {469F4ACE-4373-41F7-8F97-19908FAD452C} 108 | ProgressBar 109 | 110 | 111 | {47E60C7A-01CA-4DBF-A5F0-E64B84A4DBA4} 112 | fit.gui.common 113 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /FitGuiCommon/Configuration.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Reflection; 4 | using System.IO; 5 | using System.Xml; 6 | using System.Xml.Schema; 7 | 8 | namespace fit.gui.common 9 | { 10 | public class Configuration 11 | { 12 | private const string CONFIGURATION_SCHEMA_FILE_NAME = "fit.gui.common.Configuration.xsd"; 13 | private const string CONFIGURATION_XML_FILE_NAME = "fit-gui.sav"; 14 | public ArrayList fitTestFolders = new ArrayList(); 15 | 16 | public int MainFormTreeViewSizeWidth 17 | { 18 | get; 19 | set; 20 | } 21 | 22 | public bool MainFormPropertiesLoaded 23 | { 24 | get; 25 | set; 26 | } 27 | 28 | public int WindowWidth 29 | { 30 | get; 31 | set; 32 | } 33 | 34 | public int WindowHeight 35 | { 36 | get; 37 | set; 38 | } 39 | 40 | public int WindowLocationX 41 | { 42 | get; 43 | set; 44 | } 45 | 46 | public int WindowLocationY 47 | { 48 | get; 49 | set; 50 | } 51 | 52 | public string WindowState 53 | { 54 | get; 55 | set; 56 | } 57 | 58 | private Configuration() 59 | { 60 | } 61 | 62 | private static string ExecutingPath 63 | { 64 | get 65 | { 66 | string executingAssemblyLocation = Assembly.GetExecutingAssembly().Location; 67 | return Path.GetDirectoryName(executingAssemblyLocation); 68 | } 69 | } 70 | 71 | public static Configuration Load() 72 | { 73 | string configurationXmlFileName = Path.Combine(ExecutingPath, CONFIGURATION_XML_FILE_NAME); 74 | 75 | Configuration configuration = new Configuration(); 76 | if (!File.Exists(configurationXmlFileName)) 77 | { 78 | return configuration; 79 | } 80 | 81 | XmlDocument xmlDocument = LoadXmlDocumentFromFile(configurationXmlFileName, CONFIGURATION_SCHEMA_FILE_NAME); 82 | configuration.LoadFitTestFolders(xmlDocument); 83 | configuration.LoadMainFormProperties(xmlDocument); 84 | return configuration; 85 | } 86 | 87 | public static void Save(Configuration configuration) 88 | { 89 | XmlDocument xmlDocument = new XmlDocument(); 90 | XmlElement xmlRootElement = xmlDocument.CreateElement("FitTestContainer"); 91 | xmlDocument.AppendChild(xmlRootElement); 92 | 93 | XmlElement xmlFitTestFoldersElement = CreateElement(xmlRootElement, "FitTestFolders"); 94 | foreach (FitTestFolder fitTestFolder in configuration.fitTestFolders) 95 | { 96 | XmlElement xmlFitTestFolderElement = CreateElement(xmlFitTestFoldersElement, "FitTestFolder"); 97 | CreateElement(xmlFitTestFolderElement, "Name", fitTestFolder.FolderName); 98 | CreateElement(xmlFitTestFolderElement, "SpecificationPath", fitTestFolder.InputFolder); 99 | CreateElement(xmlFitTestFolderElement, "ResultPath", fitTestFolder.OutputFolder); 100 | CreateElement(xmlFitTestFolderElement, "FixturePath", fitTestFolder.FixturePath); 101 | } 102 | 103 | XmlElement xmlMainFormElement = CreateElement(xmlRootElement, "MainForm"); 104 | XmlElement xmlSizeElement = CreateElement(xmlMainFormElement, "Size"); 105 | CreateElement(xmlSizeElement, "Width", configuration.WindowWidth.ToString()); 106 | CreateElement(xmlSizeElement, "Height", configuration.WindowHeight.ToString()); 107 | XmlElement xmlLocationElement = CreateElement(xmlMainFormElement, "Location"); 108 | CreateElement(xmlLocationElement, "X", configuration.WindowLocationX.ToString()); 109 | CreateElement(xmlLocationElement, "Y", configuration.WindowLocationY.ToString()); 110 | CreateElement(xmlMainFormElement, "WindowState", configuration.WindowState); 111 | CreateElement(xmlMainFormElement, "TreeViewSizeWidth", configuration.MainFormTreeViewSizeWidth.ToString()); 112 | 113 | string configurationXmlFileName = Path.Combine(ExecutingPath, CONFIGURATION_XML_FILE_NAME); 114 | 115 | SaveXmlDocumentToFile(xmlDocument, configurationXmlFileName, CONFIGURATION_SCHEMA_FILE_NAME); 116 | } 117 | 118 | private void LoadMainFormProperties(XmlDocument xmlDocument) 119 | { 120 | XmlNode mainFormXmlNode = xmlDocument.SelectSingleNode("/FitTestContainer/MainForm"); 121 | if (mainFormXmlNode == null) 122 | { 123 | MainFormPropertiesLoaded = false; 124 | } 125 | else 126 | { 127 | XmlNode xmlNode = mainFormXmlNode.SelectSingleNode("Size/Width"); 128 | WindowWidth = Convert.ToInt32(xmlNode.InnerText); 129 | xmlNode = mainFormXmlNode.SelectSingleNode("Size/Height"); 130 | WindowHeight = Convert.ToInt32(xmlNode.InnerText); 131 | xmlNode = mainFormXmlNode.SelectSingleNode("Location/X"); 132 | WindowLocationX = Convert.ToInt32(xmlNode.InnerText); 133 | xmlNode = mainFormXmlNode.SelectSingleNode("Location/Y"); 134 | WindowLocationY = Convert.ToInt32(xmlNode.InnerText); 135 | xmlNode = mainFormXmlNode.SelectSingleNode("WindowState"); 136 | WindowState = xmlNode.InnerText; 137 | xmlNode = mainFormXmlNode.SelectSingleNode("TreeViewSizeWidth"); 138 | MainFormTreeViewSizeWidth = Convert.ToInt32(xmlNode.InnerText); 139 | MainFormPropertiesLoaded = true; 140 | } 141 | } 142 | 143 | private void LoadFitTestFolders(XmlDocument xmlDocument) 144 | { 145 | fitTestFolders.Clear(); 146 | XmlNodeList xmlNodeList = xmlDocument.SelectNodes("/FitTestContainer/FitTestFolders/*"); 147 | foreach (XmlNode xmlNode in xmlNodeList) 148 | { 149 | FitTestFolder fitTestFolder = new FitTestFolder(); 150 | fitTestFolder.FolderName = xmlNode.SelectSingleNode("Name").InnerText; 151 | fitTestFolder.InputFolder = xmlNode.SelectSingleNode("SpecificationPath").InnerText; 152 | fitTestFolder.OutputFolder = xmlNode.SelectSingleNode("ResultPath").InnerText; 153 | fitTestFolder.FixturePath = xmlNode.SelectSingleNode("FixturePath").InnerText; 154 | fitTestFolders.Add(fitTestFolder); 155 | } 156 | } 157 | 158 | private static XmlElement CreateElement(XmlElement xmlRootElement, string element, string elementValue) 159 | { 160 | XmlElement xmlElement = xmlRootElement.OwnerDocument.CreateElement(element); 161 | xmlElement.InnerText = elementValue; 162 | xmlRootElement.AppendChild(xmlElement); 163 | return xmlElement; 164 | } 165 | 166 | private static XmlElement CreateElement(XmlElement xmlRootElement, string element) 167 | { 168 | XmlElement xmlElement = xmlRootElement.OwnerDocument.CreateElement(element); 169 | xmlRootElement.AppendChild(xmlElement); 170 | return xmlElement; 171 | } 172 | 173 | private static bool IsXmlValid(string xml, string xmlSchemaFileName) 174 | { 175 | using (StringReader stringReader = new StringReader(xml)) 176 | { 177 | bool isValid = true; 178 | var xmlReaderSettings = new XmlReaderSettings(); 179 | 180 | Assembly myAssembly = Assembly.GetExecutingAssembly(); 181 | using (Stream schemaStream = myAssembly.GetManifestResourceStream(xmlSchemaFileName)) 182 | { 183 | using (XmlReader schemaReader = XmlReader.Create(schemaStream)) 184 | { 185 | xmlReaderSettings.Schemas.Add("", schemaReader); 186 | 187 | 188 | xmlReaderSettings.ValidationEventHandler += (o, args) => { 189 | if (args.Severity == XmlSeverityType.Error) 190 | isValid = false; }; 191 | xmlReaderSettings.ValidationType = ValidationType.Schema; 192 | using (XmlReader xmlReader = XmlReader.Create(stringReader, xmlReaderSettings)) 193 | { 194 | while (xmlReader.Read()) 195 | { 196 | } 197 | } 198 | return isValid; 199 | } 200 | } 201 | 202 | } 203 | } 204 | 205 | private static void SaveXmlDocumentToFile(XmlDocument xmlDocument, string xmlDocumentFileName, string xmlSchemaFileName) 206 | { 207 | bool isValid = IsXmlValid(xmlDocument.InnerXml, xmlSchemaFileName); 208 | 209 | if (!isValid) 210 | throw new Exception("XML is not valid!"); 211 | 212 | using (StreamWriter streamWriter = new StreamWriter(xmlDocumentFileName, false, System.Text.Encoding.UTF8)) 213 | { 214 | xmlDocument.Save(streamWriter); 215 | } 216 | } 217 | 218 | private static XmlDocument LoadXmlDocumentFromFile(string xmlDocumentFileName, string xmlSchemaFileName) 219 | { 220 | XmlDocument xmlDocument = new XmlDocument(); 221 | xmlDocument.Load(xmlDocumentFileName); 222 | 223 | bool isValid = IsXmlValid(xmlDocument.InnerXml, xmlSchemaFileName); 224 | 225 | if (!isValid) 226 | throw new Exception("XML is not valid!"); 227 | 228 | return xmlDocument; 229 | } 230 | } 231 | } 232 | -------------------------------------------------------------------------------- /fit-gui/AboutForm.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | text/microsoft-resx 90 | 91 | 92 | 1.3 93 | 94 | 95 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 96 | 97 | 98 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 99 | 100 | 101 | False 102 | 103 | 104 | Private 105 | 106 | 107 | Private 108 | 109 | 110 | False 111 | 112 | 113 | Private 114 | 115 | 116 | Private 117 | 118 | 119 | False 120 | 121 | 122 | Private 123 | 124 | 125 | Private 126 | 127 | 128 | False 129 | 130 | 131 | Private 132 | 133 | 134 | Private 135 | 136 | 137 | Private 138 | 139 | 140 | Private 141 | 142 | 143 | False 144 | 145 | 146 | False 147 | 148 | 149 | Private 150 | 151 | 152 | Private 153 | 154 | 155 | False 156 | 157 | 158 | Private 159 | 160 | 161 | Private 162 | 163 | 164 | False 165 | 166 | 167 | (Default) 168 | 169 | 170 | False 171 | 172 | 173 | False 174 | 175 | 176 | 8, 8 177 | 178 | 179 | True 180 | 181 | 182 | 80 183 | 184 | 185 | True 186 | 187 | 188 | AboutForm 189 | 190 | 191 | Private 192 | 193 | -------------------------------------------------------------------------------- /Installer/fit-gui.nsi: -------------------------------------------------------------------------------- 1 | ; Script generated by the HM NIS Edit Script Wizard. 2 | 3 | ; HM NIS Edit Wizard helper defines 4 | !define PRODUCT_NAME "fit-gui" 5 | !define PRODUCT_VERSION "1.0 Beta 2" 6 | !define PRODUCT_PUBLISHER "Alexey Pisanko" 7 | !define PRODUCT_WEB_SITE "http://fit-gui.sourceforge.net/" 8 | !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\fit-gui.exe" 9 | !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" 10 | !define PRODUCT_UNINST_ROOT_KEY "HKLM" 11 | 12 | SetCompressor lzma 13 | 14 | ; MUI 1.67 compatible ------ 15 | !include "MUI.nsh" 16 | 17 | ; MUI Settings 18 | !define MUI_ABORTWARNING 19 | !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" 20 | !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" 21 | 22 | ; Welcome page 23 | !insertmacro MUI_PAGE_WELCOME 24 | ; License page 25 | !insertmacro MUI_PAGE_LICENSE "X:\fit-gui\license.txt" 26 | ; Directory page 27 | !insertmacro MUI_PAGE_DIRECTORY 28 | ; Instfiles page 29 | !insertmacro MUI_PAGE_INSTFILES 30 | ; Finish page 31 | !define MUI_FINISHPAGE_RUN "$INSTDIR\fit-gui.exe" 32 | !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\ReleaseNotes.txt" 33 | !insertmacro MUI_PAGE_FINISH 34 | 35 | ; Uninstaller pages 36 | !insertmacro MUI_UNPAGE_INSTFILES 37 | 38 | ; Language files 39 | !insertmacro MUI_LANGUAGE "English" 40 | 41 | ; Reserve files 42 | !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS 43 | 44 | ; MUI end ------ 45 | 46 | Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" 47 | OutFile "Setup.exe" 48 | InstallDir "$PROGRAMFILES\fit-gui" 49 | InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" 50 | ShowInstDetails show 51 | ShowUnInstDetails show 52 | 53 | Section "MainSection" SEC01 54 | SetOutPath "$INSTDIR" 55 | SetOverwrite ifnewer 56 | File "X:\fit-gui\bin\fit-gui.exe" 57 | CreateDirectory "$SMPROGRAMS\fit-gui" 58 | CreateShortCut "$SMPROGRAMS\fit-gui\fit-gui.lnk" "$INSTDIR\fit-gui.exe" 59 | CreateShortCut "$DESKTOP\fit-gui.lnk" "$INSTDIR\fit-gui.exe" 60 | File "X:\fit-gui\bin\AxInterop.SHDocVw.dll" 61 | File "X:\fit-gui\bin\FitGuiCommon.dll" 62 | File "X:\fit-gui\bin\Interop.SHDocVw.dll" 63 | File "X:\fit-gui\bin\ProgressBar.dll" 64 | File "X:\fit-gui\bin\Runner.exe" 65 | File "X:\fit-gui\license.txt" 66 | File "X:\fit-gui\ReleaseNotes.txt" 67 | 68 | ; Create fit-gui.sav 69 | ClearErrors 70 | FileOpen $0 "$INSTDIR\fit-gui.sav" "w" 71 | IfErrors Done 72 | FileWrite $0 "" 73 | IfErrors Done 74 | FileWrite $0 "" 75 | IfErrors Done 76 | FileWrite $0 "" 77 | IfErrors Done 78 | FileWrite $0 "" 79 | IfErrors Done 80 | FileWrite $0 "fit-gui Examples" 81 | IfErrors Done 82 | FileWrite $0 "$INSTDIR\Examples\Specifications" 83 | IfErrors Done 84 | FileWrite $0 "$INSTDIR\Examples\Results" 85 | IfErrors Done 86 | FileWrite $0 "$INSTDIR\Examples\Fixtures\Bin" 87 | IfErrors Done 88 | FileWrite $0 "" 89 | IfErrors Done 90 | FileWrite $0 "" 91 | IfErrors Done 92 | FileWrite $0 "" 93 | IfErrors Done 94 | 95 | Done: 96 | FileClose $0 97 | 98 | SectionEnd 99 | 100 | Section "Examples" EXAMPLES 101 | SetOutPath "$INSTDIR\Examples\Specifications" 102 | SetOverwrite ifnewer 103 | File "X:\fit-gui\Examples\Specifications\ExceptionActionFixture.html" 104 | File "X:\fit-gui\Examples\Specifications\ExceptionColumnFixture.html" 105 | File "X:\fit-gui\Examples\Specifications\RightActionFixture.html" 106 | File "X:\fit-gui\Examples\Specifications\RightColumnFixture.html" 107 | File "X:\fit-gui\Examples\Specifications\RightRowFixture.html" 108 | File "X:\fit-gui\Examples\Specifications\WrongActionFixture.html" 109 | File "X:\fit-gui\Examples\Specifications\WrongColumnFixture.html" 110 | SetOutPath "$INSTDIR\Examples\Results" 111 | SetOutPath "$INSTDIR\Examples\Fixtures\Bin" 112 | File "X:\fit-gui\Examples\Fixtures\Bin\fit.dll" 113 | File "X:\fit-gui\Examples\Fixtures\Bin\ConnectionFixture.dll" 114 | File "X:\fit-gui\Examples\Fixtures\Bin\InventoryFixture.dll" 115 | File "X:\fit-gui\Examples\Fixtures\Bin\MultiplicationFixture.dll" 116 | SetOutPath "$INSTDIR\Examples\Fixtures\Source" 117 | File "X:\fit-gui\Examples\Fixtures\Source\Fixtures.sln" 118 | SetOutPath "$INSTDIR\Examples\Fixtures\Source\fit" 119 | File "X:\fit-gui\Examples\Fixtures\Source\fit\fit.dll" 120 | SetOutPath "$INSTDIR\Examples\Fixtures\Source\ConnectionFixture" 121 | File "X:\fit-gui\Examples\Fixtures\Source\ConnectionFixture\AssemblyInfo.cs" 122 | File "X:\fit-gui\Examples\Fixtures\Source\ConnectionFixture\ConnectionFixture.cs" 123 | File "X:\fit-gui\Examples\Fixtures\Source\ConnectionFixture\ConnectionFixture.csproj" 124 | SetOutPath "$INSTDIR\Examples\Fixtures\Source\InventoryFixture" 125 | File "X:\fit-gui\Examples\Fixtures\Source\InventoryFixture\AssemblyInfo.cs" 126 | File "X:\fit-gui\Examples\Fixtures\Source\InventoryFixture\InventoryFixture.cs" 127 | File "X:\fit-gui\Examples\Fixtures\Source\InventoryFixture\InventoryFixture.csproj" 128 | SetOutPath "$INSTDIR\Examples\Fixtures\Source\MultiplicationFixture" 129 | File "X:\fit-gui\Examples\Fixtures\Source\MultiplicationFixture\AssemblyInfo.cs" 130 | File "X:\fit-gui\Examples\Fixtures\Source\MultiplicationFixture\MultiplicationFixture.cs" 131 | File "X:\fit-gui\Examples\Fixtures\Source\MultiplicationFixture\MultiplicationFixture.csproj" 132 | SectionEnd 133 | 134 | Section -AdditionalIcons 135 | WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" 136 | CreateShortCut "$SMPROGRAMS\fit-gui\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" 137 | CreateShortCut "$SMPROGRAMS\fit-gui\Uninstall.lnk" "$INSTDIR\uninst.exe" 138 | SectionEnd 139 | 140 | Section -Post 141 | WriteUninstaller "$INSTDIR\uninst.exe" 142 | WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\fit-gui.exe" 143 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" 144 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" 145 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\fit-gui.exe" 146 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" 147 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" 148 | WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" 149 | SectionEnd 150 | 151 | 152 | Function un.onUninstSuccess 153 | HideWindow 154 | MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." 155 | FunctionEnd 156 | 157 | Function un.onInit 158 | MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" IDYES +2 159 | Abort 160 | FunctionEnd 161 | 162 | Section Uninstall 163 | ; Uninstall $INSTDIR 164 | Delete "$INSTDIR\${PRODUCT_NAME}.url" 165 | Delete "$INSTDIR\uninst.exe" 166 | Delete "$INSTDIR\ReleaseNotes.txt" 167 | Delete "$INSTDIR\license.txt" 168 | Delete "$INSTDIR\Runner.exe" 169 | Delete "$INSTDIR\ProgressBar.dll" 170 | Delete "$INSTDIR\Interop.SHDocVw.dll" 171 | Delete "$INSTDIR\FitGuiCommon.dll" 172 | Delete "$INSTDIR\AxInterop.SHDocVw.dll" 173 | Delete "$INSTDIR\fit-gui.exe" 174 | Delete "$INSTDIR\fit-gui.sav" 175 | 176 | ; Uninstall $INSTDIR\Examples\Specifications 177 | Delete "$INSTDIR\Examples\Specifications\ExceptionActionFixture.html" 178 | Delete "$INSTDIR\Examples\Specifications\ExceptionColumnFixture.html" 179 | Delete "$INSTDIR\Examples\Specifications\RightActionFixture.html" 180 | Delete "$INSTDIR\Examples\Specifications\RightColumnFixture.html" 181 | Delete "$INSTDIR\Examples\Specifications\RightRowFixture.html" 182 | Delete "$INSTDIR\Examples\Specifications\WrongActionFixture.html" 183 | Delete "$INSTDIR\Examples\Specifications\WrongColumnFixture.html" 184 | RMDir "$INSTDIR\Examples\Specifications" 185 | 186 | ; Uninstall $INSTDIR\Examples\Results 187 | RMDir "$INSTDIR\Examples\Results" 188 | 189 | ; Uninstall $INSTDIR\Examples\Fixtures\Bin 190 | Delete "$INSTDIR\Examples\Fixtures\Bin\fit.dll" 191 | Delete "$INSTDIR\Examples\Fixtures\Bin\ConnectionFixture.dll" 192 | Delete "$INSTDIR\Examples\Fixtures\Bin\InventoryFixture.dll" 193 | Delete "$INSTDIR\Examples\Fixtures\Bin\MultiplicationFixture.dll" 194 | RMDir "$INSTDIR\Examples\Fixtures\Bin" 195 | 196 | ; Uninstall $INSTDIR\Examples\Fixtures\Source\fit 197 | Delete "$INSTDIR\Examples\Fixtures\Source\fit\fit.dll" 198 | RMDir "$INSTDIR\Examples\Fixtures\Source\fit" 199 | 200 | ; Uninstall $INSTDIR\Examples\Fixtures\Source\ConnectionFixture 201 | Delete "$INSTDIR\Examples\Fixtures\Source\ConnectionFixture\AssemblyInfo.cs" 202 | Delete "$INSTDIR\Examples\Fixtures\Source\ConnectionFixture\ConnectionFixture.cs" 203 | Delete "$INSTDIR\Examples\Fixtures\Source\ConnectionFixture\ConnectionFixture.csproj" 204 | RMDir "$INSTDIR\Examples\Fixtures\Source\ConnectionFixture" 205 | 206 | ; Uninstall $INSTDIR\Examples\Fixtures\Source\InventoryFixture 207 | Delete "$INSTDIR\Examples\Fixtures\Source\InventoryFixture\AssemblyInfo.cs" 208 | Delete "$INSTDIR\Examples\Fixtures\Source\InventoryFixture\InventoryFixture.cs" 209 | Delete "$INSTDIR\Examples\Fixtures\Source\InventoryFixture\InventoryFixture.csproj" 210 | RMDir "$INSTDIR\Examples\Fixtures\Source\InventoryFixture" 211 | 212 | ; Uninstall $INSTDIR\Examples\Fixtures\Source\MultiplicationFixture 213 | Delete "$INSTDIR\Examples\Fixtures\Source\MultiplicationFixture\AssemblyInfo.cs" 214 | Delete "$INSTDIR\Examples\Fixtures\Source\MultiplicationFixture\MultiplicationFixture.cs" 215 | Delete "$INSTDIR\Examples\Fixtures\Source\MultiplicationFixture\MultiplicationFixture.csproj" 216 | RMDir "$INSTDIR\Examples\Fixtures\Source\MultiplicationFixture" 217 | 218 | ; Uninstall $INSTDIR\Examples\Fixtures\Source 219 | Delete "$INSTDIR\Examples\Fixtures\Source\Fixtures.sln" 220 | RMDir "$INSTDIR\Examples\Fixtures\Source" 221 | 222 | ; Uninstall $INSTDIR\Examples\Fixtures 223 | RMDir "$INSTDIR\Examples\Fixtures" 224 | 225 | ; Uninstall $INSTDIR\Examples 226 | RMDir "$INSTDIR\Examples" 227 | 228 | Delete "$SMPROGRAMS\fit-gui\Uninstall.lnk" 229 | Delete "$SMPROGRAMS\fit-gui\Website.lnk" 230 | Delete "$DESKTOP\fit-gui.lnk" 231 | Delete "$SMPROGRAMS\fit-gui\fit-gui.lnk" 232 | 233 | RMDir "$SMPROGRAMS\fit-gui" 234 | RMDir "$INSTDIR" 235 | 236 | DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" 237 | DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" 238 | SetAutoClose true 239 | SectionEnd 240 | -------------------------------------------------------------------------------- /fit-gui/AddFolderForm.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.IO; 3 | using System.Windows.Forms; 4 | using fit.gui.common; 5 | 6 | namespace fit.gui 7 | { 8 | public class AddFolderForm : Form 9 | { 10 | private Label labelName; 11 | private TextBox textBoxName; 12 | private System.Windows.Forms.Button buttonOK; 13 | private System.Windows.Forms.Button buttonCancel; 14 | private Container components = null; 15 | private FitTestFolder fitTestFolder = null; 16 | private System.Windows.Forms.Label labelInputFolder; 17 | private System.Windows.Forms.Label labelOutputFolder; 18 | private System.Windows.Forms.Label labelFixturePath; 19 | private System.Windows.Forms.TextBox textBoxFixturePath; 20 | private System.Windows.Forms.Button buttonBrowseOutputFolder; 21 | private System.Windows.Forms.Button buttonBrowseFixturePath; 22 | private System.Windows.Forms.Button buttonBrowseInputFolder; 23 | private System.Windows.Forms.TextBox textBoxInputFolder; 24 | private System.Windows.Forms.TextBox textBoxOutputFolder; 25 | 26 | public FitTestFolder FitTestFolder 27 | { 28 | get 29 | { 30 | return fitTestFolder; 31 | } 32 | } 33 | 34 | public AddFolderForm() 35 | { 36 | InitializeComponent(); 37 | } 38 | 39 | protected override void Dispose(bool disposing) 40 | { 41 | if (disposing) 42 | { 43 | if (components != null) 44 | { 45 | components.Dispose(); 46 | } 47 | } 48 | base.Dispose(disposing); 49 | } 50 | 51 | #region Windows Form Designer generated code 52 | /// 53 | /// Required method for Designer support - do not modify 54 | /// the contents of this method with the code editor. 55 | /// 56 | private void InitializeComponent() 57 | { 58 | this.labelName = new System.Windows.Forms.Label(); 59 | this.textBoxName = new System.Windows.Forms.TextBox(); 60 | this.buttonBrowseInputFolder = new System.Windows.Forms.Button(); 61 | this.buttonOK = new System.Windows.Forms.Button(); 62 | this.labelInputFolder = new System.Windows.Forms.Label(); 63 | this.labelOutputFolder = new System.Windows.Forms.Label(); 64 | this.textBoxInputFolder = new System.Windows.Forms.TextBox(); 65 | this.textBoxOutputFolder = new System.Windows.Forms.TextBox(); 66 | this.buttonBrowseOutputFolder = new System.Windows.Forms.Button(); 67 | this.buttonCancel = new System.Windows.Forms.Button(); 68 | this.labelFixturePath = new System.Windows.Forms.Label(); 69 | this.textBoxFixturePath = new System.Windows.Forms.TextBox(); 70 | this.buttonBrowseFixturePath = new System.Windows.Forms.Button(); 71 | this.SuspendLayout(); 72 | // 73 | // labelName 74 | // 75 | this.labelName.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204))); 76 | this.labelName.Location = new System.Drawing.Point(32, 18); 77 | this.labelName.Name = "labelName"; 78 | this.labelName.Size = new System.Drawing.Size(96, 20); 79 | this.labelName.TabIndex = 0; 80 | this.labelName.Text = "Folder Name"; 81 | // 82 | // textBoxName 83 | // 84 | this.textBoxName.Location = new System.Drawing.Point(136, 16); 85 | this.textBoxName.Name = "textBoxName"; 86 | this.textBoxName.Size = new System.Drawing.Size(384, 20); 87 | this.textBoxName.TabIndex = 1; 88 | this.textBoxName.Text = "Fit Tests"; 89 | // 90 | // buttonBrowseInputFolder 91 | // 92 | this.buttonBrowseInputFolder.Location = new System.Drawing.Point(528, 46); 93 | this.buttonBrowseInputFolder.Name = "buttonBrowseInputFolder"; 94 | this.buttonBrowseInputFolder.TabIndex = 3; 95 | this.buttonBrowseInputFolder.Text = "Browse..."; 96 | this.buttonBrowseInputFolder.Click += new System.EventHandler(this.buttonBrowseInputWindowsFolder_Click); 97 | // 98 | // buttonOK 99 | // 100 | this.buttonOK.Location = new System.Drawing.Point(448, 152); 101 | this.buttonOK.Name = "buttonOK"; 102 | this.buttonOK.TabIndex = 8; 103 | this.buttonOK.Text = "OK"; 104 | this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); 105 | // 106 | // labelInputFolder 107 | // 108 | this.labelInputFolder.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204))); 109 | this.labelInputFolder.Location = new System.Drawing.Point(32, 50); 110 | this.labelInputFolder.Name = "labelInputFolder"; 111 | this.labelInputFolder.Size = new System.Drawing.Size(96, 20); 112 | this.labelInputFolder.TabIndex = 0; 113 | this.labelInputFolder.Text = "Specification path"; 114 | // 115 | // labelOutputFolder 116 | // 117 | this.labelOutputFolder.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204))); 118 | this.labelOutputFolder.Location = new System.Drawing.Point(32, 82); 119 | this.labelOutputFolder.Name = "labelOutputFolder"; 120 | this.labelOutputFolder.Size = new System.Drawing.Size(96, 20); 121 | this.labelOutputFolder.TabIndex = 0; 122 | this.labelOutputFolder.Text = "Result path"; 123 | // 124 | // textBoxInputFolder 125 | // 126 | this.textBoxInputFolder.Location = new System.Drawing.Point(136, 48); 127 | this.textBoxInputFolder.Name = "textBoxInputFolder"; 128 | this.textBoxInputFolder.Size = new System.Drawing.Size(384, 20); 129 | this.textBoxInputFolder.TabIndex = 2; 130 | this.textBoxInputFolder.Text = ""; 131 | // 132 | // textBoxOutputFolder 133 | // 134 | this.textBoxOutputFolder.Location = new System.Drawing.Point(136, 80); 135 | this.textBoxOutputFolder.Name = "textBoxOutputFolder"; 136 | this.textBoxOutputFolder.Size = new System.Drawing.Size(384, 20); 137 | this.textBoxOutputFolder.TabIndex = 4; 138 | this.textBoxOutputFolder.Text = ""; 139 | // 140 | // buttonBrowseOutputFolder 141 | // 142 | this.buttonBrowseOutputFolder.Location = new System.Drawing.Point(528, 78); 143 | this.buttonBrowseOutputFolder.Name = "buttonBrowseOutputFolder"; 144 | this.buttonBrowseOutputFolder.TabIndex = 5; 145 | this.buttonBrowseOutputFolder.Text = "Browse..."; 146 | this.buttonBrowseOutputFolder.Click += new System.EventHandler(this.buttonBrowseOutputWindowsFolder_Click); 147 | // 148 | // buttonCancel 149 | // 150 | this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; 151 | this.buttonCancel.Location = new System.Drawing.Point(528, 152); 152 | this.buttonCancel.Name = "buttonCancel"; 153 | this.buttonCancel.TabIndex = 9; 154 | this.buttonCancel.Text = "Cancel"; 155 | // 156 | // labelFixturePath 157 | // 158 | this.labelFixturePath.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204))); 159 | this.labelFixturePath.Location = new System.Drawing.Point(32, 114); 160 | this.labelFixturePath.Name = "labelFixturePath"; 161 | this.labelFixturePath.Size = new System.Drawing.Size(96, 20); 162 | this.labelFixturePath.TabIndex = 0; 163 | this.labelFixturePath.Text = "Fixture path"; 164 | // 165 | // textBoxFixturePath 166 | // 167 | this.textBoxFixturePath.Location = new System.Drawing.Point(136, 112); 168 | this.textBoxFixturePath.Name = "textBoxFixturePath"; 169 | this.textBoxFixturePath.Size = new System.Drawing.Size(384, 20); 170 | this.textBoxFixturePath.TabIndex = 6; 171 | this.textBoxFixturePath.Text = ""; 172 | // 173 | // buttonBrowseFixturePath 174 | // 175 | this.buttonBrowseFixturePath.Location = new System.Drawing.Point(528, 110); 176 | this.buttonBrowseFixturePath.Name = "buttonBrowseFixturePath"; 177 | this.buttonBrowseFixturePath.TabIndex = 7; 178 | this.buttonBrowseFixturePath.Text = "Browse..."; 179 | this.buttonBrowseFixturePath.Click += new System.EventHandler(this.buttonBrowseFixturePath_Click); 180 | // 181 | // AddFolderForm 182 | // 183 | this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); 184 | this.ClientSize = new System.Drawing.Size(616, 188); 185 | this.Controls.Add(this.buttonBrowseFixturePath); 186 | this.Controls.Add(this.textBoxFixturePath); 187 | this.Controls.Add(this.labelFixturePath); 188 | this.Controls.Add(this.buttonCancel); 189 | this.Controls.Add(this.buttonBrowseOutputFolder); 190 | this.Controls.Add(this.textBoxOutputFolder); 191 | this.Controls.Add(this.textBoxInputFolder); 192 | this.Controls.Add(this.textBoxName); 193 | this.Controls.Add(this.labelOutputFolder); 194 | this.Controls.Add(this.labelInputFolder); 195 | this.Controls.Add(this.buttonOK); 196 | this.Controls.Add(this.buttonBrowseInputFolder); 197 | this.Controls.Add(this.labelName); 198 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; 199 | this.Name = "AddFolderForm"; 200 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; 201 | this.Text = "Add new Fit test folder"; 202 | this.ResumeLayout(false); 203 | 204 | } 205 | #endregion 206 | 207 | private bool ShowFolderBrowserDialog(string description, ref string selectedPath) 208 | { 209 | using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog()) 210 | { 211 | folderBrowserDialog.Description = description; 212 | folderBrowserDialog.SelectedPath = selectedPath; 213 | 214 | if(folderBrowserDialog.ShowDialog() == DialogResult.OK) 215 | { 216 | selectedPath = folderBrowserDialog.SelectedPath; 217 | return true; 218 | } 219 | return false; 220 | } 221 | } 222 | 223 | private void buttonBrowseInputWindowsFolder_Click(object sender, System.EventArgs e) 224 | { 225 | string inputWindowsFolder = textBoxInputFolder.Text; 226 | if (ShowFolderBrowserDialog("Select Fit Test Specification Path", ref inputWindowsFolder)) 227 | { 228 | textBoxInputFolder.Text = inputWindowsFolder; 229 | } 230 | } 231 | 232 | private void buttonBrowseOutputWindowsFolder_Click(object sender, System.EventArgs e) 233 | { 234 | string outputFolder = textBoxOutputFolder.Text; 235 | if (ShowFolderBrowserDialog("Select Fit Test Result Path", ref outputFolder)) 236 | { 237 | textBoxOutputFolder.Text = outputFolder; 238 | } 239 | } 240 | 241 | private void buttonOK_Click(object sender, System.EventArgs e) 242 | { 243 | DirectoryInfo inputFolderDirectoryInfo = new DirectoryInfo(textBoxInputFolder.Text); 244 | if (!inputFolderDirectoryInfo.Exists) 245 | { 246 | textBoxInputFolder.Focus(); 247 | return; 248 | } 249 | 250 | DirectoryInfo outputFolderDirectoryInfo = new DirectoryInfo(textBoxOutputFolder.Text); 251 | if (!outputFolderDirectoryInfo.Exists) 252 | { 253 | textBoxOutputFolder.Focus(); 254 | return; 255 | } 256 | 257 | DirectoryInfo fixturePathDirectoryInfo = new DirectoryInfo(textBoxFixturePath.Text); 258 | if (!fixturePathDirectoryInfo.Exists) 259 | { 260 | textBoxFixturePath.Focus(); 261 | return; 262 | } 263 | 264 | FitTestFolder fitTestFolder = new FitTestFolder(); 265 | fitTestFolder.FolderName = textBoxName.Text; 266 | fitTestFolder.InputFolder = textBoxInputFolder.Text; 267 | fitTestFolder.OutputFolder = textBoxOutputFolder.Text; 268 | fitTestFolder.FixturePath = textBoxFixturePath.Text; 269 | this.fitTestFolder = fitTestFolder; 270 | this.DialogResult = DialogResult.OK; 271 | } 272 | 273 | private void buttonBrowseFixturePath_Click(object sender, System.EventArgs e) 274 | { 275 | string fixturePath = textBoxFixturePath.Text; 276 | if (ShowFolderBrowserDialog("Select Fit Test Fixture Path", ref fixturePath)) 277 | { 278 | textBoxFixturePath.Text = fixturePath; 279 | } 280 | } 281 | } 282 | } 283 | -------------------------------------------------------------------------------- /fit-gui-gtk/gtk-gui/fit.gui.gtk.MainWindow.cs: -------------------------------------------------------------------------------- 1 | 2 | // This file has been generated by the GUI designer. Do not modify. 3 | namespace fit.gui.gtk 4 | { 5 | public partial class MainWindow 6 | { 7 | private global::Gtk.VBox vbox1; 8 | private global::Gtk.Alignment alignment2; 9 | private global::Gtk.HBox hbox1; 10 | private global::Gtk.Button buttonStartStop; 11 | private global::Gtk.ProgressBar progressbarMain; 12 | private global::Gtk.Button buttonDeleteFolder; 13 | private global::Gtk.Button buttonEditFolder; 14 | private global::Gtk.Button buttonAddFolder; 15 | private global::Gtk.HPaned hpaned1; 16 | private global::Gtk.ScrolledWindow GtkScrolledWindow; 17 | private global::Gtk.TreeView treeview1; 18 | private global::Gtk.VBox vbox3; 19 | private global::Gtk.HBox hbox2; 20 | private global::Gtk.Label labelView; 21 | private global::Gtk.Button buttonSpecificationOrResult; 22 | private global::Gtk.ScrolledWindow scrolledwindow1; 23 | 24 | protected virtual void Build () 25 | { 26 | global::Stetic.Gui.Initialize (this); 27 | // Widget fit.gui.gtk.MainWindow 28 | this.Name = "fit.gui.gtk.MainWindow"; 29 | this.Title = global::Mono.Unix.Catalog.GetString ("MainWindow"); 30 | this.WindowPosition = ((global::Gtk.WindowPosition)(4)); 31 | // Container child fit.gui.gtk.MainWindow.Gtk.Container+ContainerChild 32 | this.vbox1 = new global::Gtk.VBox (); 33 | this.vbox1.Name = "vbox1"; 34 | this.vbox1.Spacing = 6; 35 | // Container child vbox1.Gtk.Box+BoxChild 36 | this.alignment2 = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); 37 | this.alignment2.Name = "alignment2"; 38 | this.alignment2.LeftPadding = ((uint)(5)); 39 | this.alignment2.TopPadding = ((uint)(5)); 40 | this.alignment2.RightPadding = ((uint)(5)); 41 | // Container child alignment2.Gtk.Container+ContainerChild 42 | this.hbox1 = new global::Gtk.HBox (); 43 | this.hbox1.Name = "hbox1"; 44 | this.hbox1.Spacing = 6; 45 | // Container child hbox1.Gtk.Box+BoxChild 46 | this.buttonStartStop = new global::Gtk.Button (); 47 | this.buttonStartStop.TooltipMarkup = "XXX"; 48 | this.buttonStartStop.WidthRequest = 100; 49 | this.buttonStartStop.CanFocus = true; 50 | this.buttonStartStop.Name = "buttonStartStop"; 51 | this.buttonStartStop.UseUnderline = true; 52 | // Container child buttonStartStop.Gtk.Container+ContainerChild 53 | global::Gtk.Alignment w1 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F); 54 | // Container child GtkAlignment.Gtk.Container+ContainerChild 55 | global::Gtk.HBox w2 = new global::Gtk.HBox (); 56 | w2.Spacing = 2; 57 | // Container child GtkHBox.Gtk.Container+ContainerChild 58 | global::Gtk.Image w3 = new global::Gtk.Image (); 59 | w3.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("fit.gui.gtk.control_play_blue.png"); 60 | w2.Add (w3); 61 | // Container child GtkHBox.Gtk.Container+ContainerChild 62 | global::Gtk.Label w5 = new global::Gtk.Label (); 63 | w5.LabelProp = global::Mono.Unix.Catalog.GetString ("_Start"); 64 | w5.UseUnderline = true; 65 | w2.Add (w5); 66 | w1.Add (w2); 67 | this.buttonStartStop.Add (w1); 68 | this.hbox1.Add (this.buttonStartStop); 69 | global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.buttonStartStop])); 70 | w9.Position = 0; 71 | w9.Expand = false; 72 | w9.Fill = false; 73 | // Container child hbox1.Gtk.Box+BoxChild 74 | this.progressbarMain = new global::Gtk.ProgressBar (); 75 | this.progressbarMain.Name = "progressbarMain"; 76 | this.progressbarMain.Text = ""; 77 | this.hbox1.Add (this.progressbarMain); 78 | global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.progressbarMain])); 79 | w10.Position = 1; 80 | // Container child hbox1.Gtk.Box+BoxChild 81 | this.buttonDeleteFolder = new global::Gtk.Button (); 82 | this.buttonDeleteFolder.TooltipMarkup = "Delete test folder"; 83 | this.buttonDeleteFolder.WidthRequest = 100; 84 | this.buttonDeleteFolder.CanFocus = true; 85 | this.buttonDeleteFolder.Name = "buttonDeleteFolder"; 86 | this.buttonDeleteFolder.UseUnderline = true; 87 | // Container child buttonDeleteFolder.Gtk.Container+ContainerChild 88 | global::Gtk.Alignment w11 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F); 89 | // Container child GtkAlignment.Gtk.Container+ContainerChild 90 | global::Gtk.HBox w12 = new global::Gtk.HBox (); 91 | w12.Spacing = 2; 92 | // Container child GtkHBox.Gtk.Container+ContainerChild 93 | global::Gtk.Image w13 = new global::Gtk.Image (); 94 | w13.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("fit.gui.gtk.folder_delete.png"); 95 | w12.Add (w13); 96 | // Container child GtkHBox.Gtk.Container+ContainerChild 97 | global::Gtk.Label w15 = new global::Gtk.Label (); 98 | w15.LabelProp = global::Mono.Unix.Catalog.GetString ("Delete"); 99 | w15.UseUnderline = true; 100 | w12.Add (w15); 101 | w11.Add (w12); 102 | this.buttonDeleteFolder.Add (w11); 103 | this.hbox1.Add (this.buttonDeleteFolder); 104 | global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.buttonDeleteFolder])); 105 | w19.PackType = ((global::Gtk.PackType)(1)); 106 | w19.Position = 2; 107 | w19.Expand = false; 108 | w19.Fill = false; 109 | // Container child hbox1.Gtk.Box+BoxChild 110 | this.buttonEditFolder = new global::Gtk.Button (); 111 | this.buttonEditFolder.TooltipMarkup = "Edit test folder"; 112 | this.buttonEditFolder.WidthRequest = 100; 113 | this.buttonEditFolder.CanFocus = true; 114 | this.buttonEditFolder.Name = "buttonEditFolder"; 115 | this.buttonEditFolder.UseUnderline = true; 116 | // Container child buttonEditFolder.Gtk.Container+ContainerChild 117 | global::Gtk.Alignment w20 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F); 118 | // Container child GtkAlignment.Gtk.Container+ContainerChild 119 | global::Gtk.HBox w21 = new global::Gtk.HBox (); 120 | w21.Spacing = 2; 121 | // Container child GtkHBox.Gtk.Container+ContainerChild 122 | global::Gtk.Image w22 = new global::Gtk.Image (); 123 | w22.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("fit.gui.gtk.folder.png"); 124 | w21.Add (w22); 125 | // Container child GtkHBox.Gtk.Container+ContainerChild 126 | global::Gtk.Label w24 = new global::Gtk.Label (); 127 | w24.LabelProp = global::Mono.Unix.Catalog.GetString ("Edit"); 128 | w24.UseUnderline = true; 129 | w21.Add (w24); 130 | w20.Add (w21); 131 | this.buttonEditFolder.Add (w20); 132 | this.hbox1.Add (this.buttonEditFolder); 133 | global::Gtk.Box.BoxChild w28 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.buttonEditFolder])); 134 | w28.PackType = ((global::Gtk.PackType)(1)); 135 | w28.Position = 3; 136 | w28.Expand = false; 137 | w28.Fill = false; 138 | // Container child hbox1.Gtk.Box+BoxChild 139 | this.buttonAddFolder = new global::Gtk.Button (); 140 | this.buttonAddFolder.TooltipMarkup = "Add new test folder"; 141 | this.buttonAddFolder.WidthRequest = 100; 142 | this.buttonAddFolder.CanFocus = true; 143 | this.buttonAddFolder.Name = "buttonAddFolder"; 144 | this.buttonAddFolder.UseUnderline = true; 145 | // Container child buttonAddFolder.Gtk.Container+ContainerChild 146 | global::Gtk.Alignment w29 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F); 147 | // Container child GtkAlignment.Gtk.Container+ContainerChild 148 | global::Gtk.HBox w30 = new global::Gtk.HBox (); 149 | w30.Spacing = 2; 150 | // Container child GtkHBox.Gtk.Container+ContainerChild 151 | global::Gtk.Image w31 = new global::Gtk.Image (); 152 | w31.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("fit.gui.gtk.folder_add.png"); 153 | w30.Add (w31); 154 | // Container child GtkHBox.Gtk.Container+ContainerChild 155 | global::Gtk.Label w33 = new global::Gtk.Label (); 156 | w33.LabelProp = global::Mono.Unix.Catalog.GetString ("Add"); 157 | w33.UseUnderline = true; 158 | w30.Add (w33); 159 | w29.Add (w30); 160 | this.buttonAddFolder.Add (w29); 161 | this.hbox1.Add (this.buttonAddFolder); 162 | global::Gtk.Box.BoxChild w37 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.buttonAddFolder])); 163 | w37.PackType = ((global::Gtk.PackType)(1)); 164 | w37.Position = 4; 165 | w37.Expand = false; 166 | w37.Fill = false; 167 | this.alignment2.Add (this.hbox1); 168 | this.vbox1.Add (this.alignment2); 169 | global::Gtk.Box.BoxChild w39 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.alignment2])); 170 | w39.Position = 0; 171 | w39.Expand = false; 172 | w39.Fill = false; 173 | // Container child vbox1.Gtk.Box+BoxChild 174 | this.hpaned1 = new global::Gtk.HPaned (); 175 | this.hpaned1.CanFocus = true; 176 | this.hpaned1.Name = "hpaned1"; 177 | this.hpaned1.Position = 172; 178 | // Container child hpaned1.Gtk.Paned+PanedChild 179 | this.GtkScrolledWindow = new global::Gtk.ScrolledWindow (); 180 | this.GtkScrolledWindow.Name = "GtkScrolledWindow"; 181 | this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1)); 182 | // Container child GtkScrolledWindow.Gtk.Container+ContainerChild 183 | this.treeview1 = new global::Gtk.TreeView (); 184 | this.treeview1.CanFocus = true; 185 | this.treeview1.Name = "treeview1"; 186 | this.GtkScrolledWindow.Add (this.treeview1); 187 | this.hpaned1.Add (this.GtkScrolledWindow); 188 | global::Gtk.Paned.PanedChild w41 = ((global::Gtk.Paned.PanedChild)(this.hpaned1 [this.GtkScrolledWindow])); 189 | w41.Resize = false; 190 | // Container child hpaned1.Gtk.Paned+PanedChild 191 | this.vbox3 = new global::Gtk.VBox (); 192 | this.vbox3.Name = "vbox3"; 193 | this.vbox3.Spacing = 6; 194 | // Container child vbox3.Gtk.Box+BoxChild 195 | this.hbox2 = new global::Gtk.HBox (); 196 | this.hbox2.Name = "hbox2"; 197 | this.hbox2.Spacing = 6; 198 | // Container child hbox2.Gtk.Box+BoxChild 199 | this.labelView = new global::Gtk.Label (); 200 | this.labelView.Name = "labelView"; 201 | this.labelView.LabelProp = global::Mono.Unix.Catalog.GetString ("Specification View"); 202 | this.hbox2.Add (this.labelView); 203 | global::Gtk.Box.BoxChild w42 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.labelView])); 204 | w42.Position = 0; 205 | // Container child hbox2.Gtk.Box+BoxChild 206 | this.buttonSpecificationOrResult = new global::Gtk.Button (); 207 | this.buttonSpecificationOrResult.WidthRequest = 180; 208 | this.buttonSpecificationOrResult.CanFocus = true; 209 | this.buttonSpecificationOrResult.Name = "buttonSpecificationOrResult"; 210 | this.buttonSpecificationOrResult.UseUnderline = true; 211 | // Container child buttonSpecificationOrResult.Gtk.Container+ContainerChild 212 | global::Gtk.Alignment w43 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F); 213 | // Container child GtkAlignment.Gtk.Container+ContainerChild 214 | global::Gtk.HBox w44 = new global::Gtk.HBox (); 215 | w44.Spacing = 2; 216 | // Container child GtkHBox.Gtk.Container+ContainerChild 217 | global::Gtk.Image w45 = new global::Gtk.Image (); 218 | w45.Pixbuf = global::Gdk.Pixbuf.LoadFromResource ("fit.gui.gtk.document_valid.png"); 219 | w44.Add (w45); 220 | // Container child GtkHBox.Gtk.Container+ContainerChild 221 | global::Gtk.Label w47 = new global::Gtk.Label (); 222 | w47.LabelProp = global::Mono.Unix.Catalog.GetString ("Go to Results"); 223 | w47.UseUnderline = true; 224 | w44.Add (w47); 225 | w43.Add (w44); 226 | this.buttonSpecificationOrResult.Add (w43); 227 | this.hbox2.Add (this.buttonSpecificationOrResult); 228 | global::Gtk.Box.BoxChild w51 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.buttonSpecificationOrResult])); 229 | w51.PackType = ((global::Gtk.PackType)(1)); 230 | w51.Position = 1; 231 | w51.Expand = false; 232 | w51.Fill = false; 233 | this.vbox3.Add (this.hbox2); 234 | global::Gtk.Box.BoxChild w52 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.hbox2])); 235 | w52.Position = 0; 236 | w52.Expand = false; 237 | w52.Fill = false; 238 | // Container child vbox3.Gtk.Box+BoxChild 239 | this.scrolledwindow1 = new global::Gtk.ScrolledWindow (); 240 | this.scrolledwindow1.CanFocus = true; 241 | this.scrolledwindow1.Name = "scrolledwindow1"; 242 | this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1)); 243 | this.vbox3.Add (this.scrolledwindow1); 244 | global::Gtk.Box.BoxChild w53 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.scrolledwindow1])); 245 | w53.Position = 1; 246 | this.hpaned1.Add (this.vbox3); 247 | this.vbox1.Add (this.hpaned1); 248 | global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hpaned1])); 249 | w55.Position = 1; 250 | this.Add (this.vbox1); 251 | if ((this.Child != null)) { 252 | this.Child.ShowAll (); 253 | } 254 | this.DefaultWidth = 584; 255 | this.DefaultHeight = 284; 256 | this.Hide (); 257 | this.DeleteEvent += new global::Gtk.DeleteEventHandler (this.OnDeleteEvent); 258 | this.buttonStartStop.Clicked += new global::System.EventHandler (this.OnButtonStartStopClicked); 259 | this.buttonAddFolder.Clicked += new global::System.EventHandler (this.OnButtonAddFolderClicked); 260 | this.buttonEditFolder.Clicked += new global::System.EventHandler (this.OnButtonAddFolderClicked); 261 | this.buttonDeleteFolder.Clicked += new global::System.EventHandler (this.OnButtonAddFolderClicked); 262 | this.buttonSpecificationOrResult.Clicked += new global::System.EventHandler (this.OnButtonSpecificationResultClicked); 263 | } 264 | } 265 | } 266 | -------------------------------------------------------------------------------- /fit-gui/AddFolderForm.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | text/microsoft-resx 90 | 91 | 92 | 1.3 93 | 94 | 95 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 96 | 97 | 98 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 99 | 100 | 101 | False 102 | 103 | 104 | Private 105 | 106 | 107 | Private 108 | 109 | 110 | Private 111 | 112 | 113 | False 114 | 115 | 116 | Private 117 | 118 | 119 | False 120 | 121 | 122 | Private 123 | 124 | 125 | Private 126 | 127 | 128 | False 129 | 130 | 131 | Private 132 | 133 | 134 | Private 135 | 136 | 137 | False 138 | 139 | 140 | Private 141 | 142 | 143 | Private 144 | 145 | 146 | False 147 | 148 | 149 | Private 150 | 151 | 152 | Private 153 | 154 | 155 | Private 156 | 157 | 158 | False 159 | 160 | 161 | Private 162 | 163 | 164 | Private 165 | 166 | 167 | False 168 | 169 | 170 | Private 171 | 172 | 173 | False 174 | 175 | 176 | Private 177 | 178 | 179 | Private 180 | 181 | 182 | False 183 | 184 | 185 | Private 186 | 187 | 188 | Private 189 | 190 | 191 | False 192 | 193 | 194 | Private 195 | 196 | 197 | Private 198 | 199 | 200 | Private 201 | 202 | 203 | False 204 | 205 | 206 | Private 207 | 208 | 209 | False 210 | 211 | 212 | Private 213 | 214 | 215 | Private 216 | 217 | 218 | False 219 | 220 | 221 | (Default) 222 | 223 | 224 | False 225 | 226 | 227 | False 228 | 229 | 230 | 8, 8 231 | 232 | 233 | True 234 | 235 | 236 | 80 237 | 238 | 239 | AddFolderForm 240 | 241 | 242 | True 243 | 244 | 245 | Private 246 | 247 | -------------------------------------------------------------------------------- /fit-gui-gtk/gtk-gui/fit.gui.gtk.TestsFolder.cs: -------------------------------------------------------------------------------- 1 | 2 | // This file has been generated by the GUI designer. Do not modify. 3 | namespace fit.gui.gtk 4 | { 5 | public partial class TestsFolder 6 | { 7 | private global::Gtk.Alignment alignment1; 8 | private global::Gtk.Table table1; 9 | private global::Gtk.Alignment alignment3; 10 | private global::Gtk.Entry entryFolderName; 11 | private global::Gtk.Button buttonFixturesDirectoryPath; 12 | private global::Gtk.Button buttonResultsDirectoryPath; 13 | private global::Gtk.Button buttonSpecificationsDirectoryPath; 14 | private global::Gtk.Entry entryFixturesDirectoryPath; 15 | private global::Gtk.Entry entryResultsDirectoryPath; 16 | private global::Gtk.Entry entrySpecificationsDirectoryPath; 17 | private global::Gtk.Label labelFixturesDirectoryPath; 18 | private global::Gtk.Label labelFolderName; 19 | private global::Gtk.Label labelResultsDirectoryPath; 20 | private global::Gtk.Label labelSpecificationsDirectoryPath; 21 | private global::Gtk.Button buttonCancel; 22 | private global::Gtk.Button buttonOk; 23 | 24 | protected virtual void Build () 25 | { 26 | global::Stetic.Gui.Initialize (this); 27 | // Widget fit.gui.gtk.TestsFolder 28 | this.Name = "fit.gui.gtk.TestsFolder"; 29 | this.WindowPosition = ((global::Gtk.WindowPosition)(4)); 30 | // Internal child fit.gui.gtk.TestsFolder.VBox 31 | global::Gtk.VBox w1 = this.VBox; 32 | w1.Name = "dialog1_VBox"; 33 | w1.BorderWidth = ((uint)(2)); 34 | // Container child dialog1_VBox.Gtk.Box+BoxChild 35 | this.alignment1 = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); 36 | this.alignment1.Name = "alignment1"; 37 | this.alignment1.TopPadding = ((uint)(10)); 38 | // Container child alignment1.Gtk.Container+ContainerChild 39 | this.table1 = new global::Gtk.Table (((uint)(4)), ((uint)(3)), false); 40 | this.table1.Name = "table1"; 41 | this.table1.RowSpacing = ((uint)(6)); 42 | this.table1.ColumnSpacing = ((uint)(6)); 43 | // Container child table1.Gtk.Table+TableChild 44 | this.alignment3 = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); 45 | this.alignment3.Name = "alignment3"; 46 | this.alignment3.RightPadding = ((uint)(10)); 47 | // Container child alignment3.Gtk.Container+ContainerChild 48 | this.entryFolderName = new global::Gtk.Entry (); 49 | this.entryFolderName.CanFocus = true; 50 | this.entryFolderName.Name = "entryFolderName"; 51 | this.entryFolderName.IsEditable = true; 52 | this.entryFolderName.InvisibleChar = '•'; 53 | this.alignment3.Add (this.entryFolderName); 54 | this.table1.Add (this.alignment3); 55 | global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1 [this.alignment3])); 56 | w3.LeftAttach = ((uint)(1)); 57 | w3.RightAttach = ((uint)(3)); 58 | w3.XOptions = ((global::Gtk.AttachOptions)(4)); 59 | w3.YOptions = ((global::Gtk.AttachOptions)(4)); 60 | // Container child table1.Gtk.Table+TableChild 61 | this.buttonFixturesDirectoryPath = new global::Gtk.Button (); 62 | this.buttonFixturesDirectoryPath.CanFocus = true; 63 | this.buttonFixturesDirectoryPath.Name = "buttonFixturesDirectoryPath"; 64 | this.buttonFixturesDirectoryPath.UseUnderline = true; 65 | // Container child buttonFixturesDirectoryPath.Gtk.Container+ContainerChild 66 | global::Gtk.Alignment w4 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F); 67 | // Container child GtkAlignment.Gtk.Container+ContainerChild 68 | global::Gtk.HBox w5 = new global::Gtk.HBox (); 69 | w5.Spacing = 2; 70 | // Container child GtkHBox.Gtk.Container+ContainerChild 71 | global::Gtk.Image w6 = new global::Gtk.Image (); 72 | w6.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "stock_folder", global::Gtk.IconSize.Menu); 73 | w5.Add (w6); 74 | // Container child GtkHBox.Gtk.Container+ContainerChild 75 | global::Gtk.Label w8 = new global::Gtk.Label (); 76 | w8.LabelProp = global::Mono.Unix.Catalog.GetString ("_Select..."); 77 | w8.UseUnderline = true; 78 | w5.Add (w8); 79 | w4.Add (w5); 80 | this.buttonFixturesDirectoryPath.Add (w4); 81 | this.table1.Add (this.buttonFixturesDirectoryPath); 82 | global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table1 [this.buttonFixturesDirectoryPath])); 83 | w12.TopAttach = ((uint)(3)); 84 | w12.BottomAttach = ((uint)(4)); 85 | w12.LeftAttach = ((uint)(2)); 86 | w12.RightAttach = ((uint)(3)); 87 | w12.XPadding = ((uint)(10)); 88 | w12.XOptions = ((global::Gtk.AttachOptions)(4)); 89 | w12.YOptions = ((global::Gtk.AttachOptions)(4)); 90 | // Container child table1.Gtk.Table+TableChild 91 | this.buttonResultsDirectoryPath = new global::Gtk.Button (); 92 | this.buttonResultsDirectoryPath.CanFocus = true; 93 | this.buttonResultsDirectoryPath.Name = "buttonResultsDirectoryPath"; 94 | this.buttonResultsDirectoryPath.UseUnderline = true; 95 | // Container child buttonResultsDirectoryPath.Gtk.Container+ContainerChild 96 | global::Gtk.Alignment w13 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F); 97 | // Container child GtkAlignment.Gtk.Container+ContainerChild 98 | global::Gtk.HBox w14 = new global::Gtk.HBox (); 99 | w14.Spacing = 2; 100 | // Container child GtkHBox.Gtk.Container+ContainerChild 101 | global::Gtk.Image w15 = new global::Gtk.Image (); 102 | w15.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "stock_folder", global::Gtk.IconSize.Menu); 103 | w14.Add (w15); 104 | // Container child GtkHBox.Gtk.Container+ContainerChild 105 | global::Gtk.Label w17 = new global::Gtk.Label (); 106 | w17.LabelProp = global::Mono.Unix.Catalog.GetString ("_Select..."); 107 | w17.UseUnderline = true; 108 | w14.Add (w17); 109 | w13.Add (w14); 110 | this.buttonResultsDirectoryPath.Add (w13); 111 | this.table1.Add (this.buttonResultsDirectoryPath); 112 | global::Gtk.Table.TableChild w21 = ((global::Gtk.Table.TableChild)(this.table1 [this.buttonResultsDirectoryPath])); 113 | w21.TopAttach = ((uint)(2)); 114 | w21.BottomAttach = ((uint)(3)); 115 | w21.LeftAttach = ((uint)(2)); 116 | w21.RightAttach = ((uint)(3)); 117 | w21.XPadding = ((uint)(10)); 118 | w21.XOptions = ((global::Gtk.AttachOptions)(4)); 119 | w21.YOptions = ((global::Gtk.AttachOptions)(4)); 120 | // Container child table1.Gtk.Table+TableChild 121 | this.buttonSpecificationsDirectoryPath = new global::Gtk.Button (); 122 | this.buttonSpecificationsDirectoryPath.CanFocus = true; 123 | this.buttonSpecificationsDirectoryPath.Name = "buttonSpecificationsDirectoryPath"; 124 | this.buttonSpecificationsDirectoryPath.UseUnderline = true; 125 | // Container child buttonSpecificationsDirectoryPath.Gtk.Container+ContainerChild 126 | global::Gtk.Alignment w22 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F); 127 | // Container child GtkAlignment.Gtk.Container+ContainerChild 128 | global::Gtk.HBox w23 = new global::Gtk.HBox (); 129 | w23.Spacing = 2; 130 | // Container child GtkHBox.Gtk.Container+ContainerChild 131 | global::Gtk.Image w24 = new global::Gtk.Image (); 132 | w24.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "stock_folder", global::Gtk.IconSize.Menu); 133 | w23.Add (w24); 134 | // Container child GtkHBox.Gtk.Container+ContainerChild 135 | global::Gtk.Label w26 = new global::Gtk.Label (); 136 | w26.LabelProp = global::Mono.Unix.Catalog.GetString ("_Select..."); 137 | w26.UseUnderline = true; 138 | w23.Add (w26); 139 | w22.Add (w23); 140 | this.buttonSpecificationsDirectoryPath.Add (w22); 141 | this.table1.Add (this.buttonSpecificationsDirectoryPath); 142 | global::Gtk.Table.TableChild w30 = ((global::Gtk.Table.TableChild)(this.table1 [this.buttonSpecificationsDirectoryPath])); 143 | w30.TopAttach = ((uint)(1)); 144 | w30.BottomAttach = ((uint)(2)); 145 | w30.LeftAttach = ((uint)(2)); 146 | w30.RightAttach = ((uint)(3)); 147 | w30.XPadding = ((uint)(10)); 148 | w30.XOptions = ((global::Gtk.AttachOptions)(4)); 149 | w30.YOptions = ((global::Gtk.AttachOptions)(4)); 150 | // Container child table1.Gtk.Table+TableChild 151 | this.entryFixturesDirectoryPath = new global::Gtk.Entry (); 152 | this.entryFixturesDirectoryPath.CanFocus = true; 153 | this.entryFixturesDirectoryPath.Name = "entryFixturesDirectoryPath"; 154 | this.entryFixturesDirectoryPath.IsEditable = true; 155 | this.entryFixturesDirectoryPath.InvisibleChar = '•'; 156 | this.table1.Add (this.entryFixturesDirectoryPath); 157 | global::Gtk.Table.TableChild w31 = ((global::Gtk.Table.TableChild)(this.table1 [this.entryFixturesDirectoryPath])); 158 | w31.TopAttach = ((uint)(3)); 159 | w31.BottomAttach = ((uint)(4)); 160 | w31.LeftAttach = ((uint)(1)); 161 | w31.RightAttach = ((uint)(2)); 162 | w31.XOptions = ((global::Gtk.AttachOptions)(4)); 163 | w31.YOptions = ((global::Gtk.AttachOptions)(4)); 164 | // Container child table1.Gtk.Table+TableChild 165 | this.entryResultsDirectoryPath = new global::Gtk.Entry (); 166 | this.entryResultsDirectoryPath.CanFocus = true; 167 | this.entryResultsDirectoryPath.Name = "entryResultsDirectoryPath"; 168 | this.entryResultsDirectoryPath.IsEditable = true; 169 | this.entryResultsDirectoryPath.InvisibleChar = '•'; 170 | this.table1.Add (this.entryResultsDirectoryPath); 171 | global::Gtk.Table.TableChild w32 = ((global::Gtk.Table.TableChild)(this.table1 [this.entryResultsDirectoryPath])); 172 | w32.TopAttach = ((uint)(2)); 173 | w32.BottomAttach = ((uint)(3)); 174 | w32.LeftAttach = ((uint)(1)); 175 | w32.RightAttach = ((uint)(2)); 176 | w32.XOptions = ((global::Gtk.AttachOptions)(4)); 177 | w32.YOptions = ((global::Gtk.AttachOptions)(4)); 178 | // Container child table1.Gtk.Table+TableChild 179 | this.entrySpecificationsDirectoryPath = new global::Gtk.Entry (); 180 | this.entrySpecificationsDirectoryPath.CanFocus = true; 181 | this.entrySpecificationsDirectoryPath.Name = "entrySpecificationsDirectoryPath"; 182 | this.entrySpecificationsDirectoryPath.IsEditable = true; 183 | this.entrySpecificationsDirectoryPath.InvisibleChar = '•'; 184 | this.table1.Add (this.entrySpecificationsDirectoryPath); 185 | global::Gtk.Table.TableChild w33 = ((global::Gtk.Table.TableChild)(this.table1 [this.entrySpecificationsDirectoryPath])); 186 | w33.TopAttach = ((uint)(1)); 187 | w33.BottomAttach = ((uint)(2)); 188 | w33.LeftAttach = ((uint)(1)); 189 | w33.RightAttach = ((uint)(2)); 190 | w33.YOptions = ((global::Gtk.AttachOptions)(4)); 191 | // Container child table1.Gtk.Table+TableChild 192 | this.labelFixturesDirectoryPath = new global::Gtk.Label (); 193 | this.labelFixturesDirectoryPath.Name = "labelFixturesDirectoryPath"; 194 | this.labelFixturesDirectoryPath.Xalign = 0F; 195 | this.labelFixturesDirectoryPath.LabelProp = global::Mono.Unix.Catalog.GetString ("Fixtures Directory Path"); 196 | this.table1.Add (this.labelFixturesDirectoryPath); 197 | global::Gtk.Table.TableChild w34 = ((global::Gtk.Table.TableChild)(this.table1 [this.labelFixturesDirectoryPath])); 198 | w34.TopAttach = ((uint)(3)); 199 | w34.BottomAttach = ((uint)(4)); 200 | w34.XPadding = ((uint)(10)); 201 | w34.XOptions = ((global::Gtk.AttachOptions)(4)); 202 | w34.YOptions = ((global::Gtk.AttachOptions)(4)); 203 | // Container child table1.Gtk.Table+TableChild 204 | this.labelFolderName = new global::Gtk.Label (); 205 | this.labelFolderName.Name = "labelFolderName"; 206 | this.labelFolderName.Xalign = 0F; 207 | this.labelFolderName.LabelProp = global::Mono.Unix.Catalog.GetString ("UI Folder Name"); 208 | this.labelFolderName.Justify = ((global::Gtk.Justification)(1)); 209 | this.table1.Add (this.labelFolderName); 210 | global::Gtk.Table.TableChild w35 = ((global::Gtk.Table.TableChild)(this.table1 [this.labelFolderName])); 211 | w35.XPadding = ((uint)(10)); 212 | w35.XOptions = ((global::Gtk.AttachOptions)(4)); 213 | w35.YOptions = ((global::Gtk.AttachOptions)(4)); 214 | // Container child table1.Gtk.Table+TableChild 215 | this.labelResultsDirectoryPath = new global::Gtk.Label (); 216 | this.labelResultsDirectoryPath.Name = "labelResultsDirectoryPath"; 217 | this.labelResultsDirectoryPath.Xalign = 0F; 218 | this.labelResultsDirectoryPath.LabelProp = global::Mono.Unix.Catalog.GetString ("Results Directory Path"); 219 | this.table1.Add (this.labelResultsDirectoryPath); 220 | global::Gtk.Table.TableChild w36 = ((global::Gtk.Table.TableChild)(this.table1 [this.labelResultsDirectoryPath])); 221 | w36.TopAttach = ((uint)(2)); 222 | w36.BottomAttach = ((uint)(3)); 223 | w36.XPadding = ((uint)(10)); 224 | w36.XOptions = ((global::Gtk.AttachOptions)(4)); 225 | w36.YOptions = ((global::Gtk.AttachOptions)(4)); 226 | // Container child table1.Gtk.Table+TableChild 227 | this.labelSpecificationsDirectoryPath = new global::Gtk.Label (); 228 | this.labelSpecificationsDirectoryPath.Name = "labelSpecificationsDirectoryPath"; 229 | this.labelSpecificationsDirectoryPath.Xalign = 0F; 230 | this.labelSpecificationsDirectoryPath.LabelProp = global::Mono.Unix.Catalog.GetString ("Specifications Directory Path"); 231 | this.table1.Add (this.labelSpecificationsDirectoryPath); 232 | global::Gtk.Table.TableChild w37 = ((global::Gtk.Table.TableChild)(this.table1 [this.labelSpecificationsDirectoryPath])); 233 | w37.TopAttach = ((uint)(1)); 234 | w37.BottomAttach = ((uint)(2)); 235 | w37.XPadding = ((uint)(10)); 236 | w37.XOptions = ((global::Gtk.AttachOptions)(4)); 237 | w37.YOptions = ((global::Gtk.AttachOptions)(4)); 238 | this.alignment1.Add (this.table1); 239 | w1.Add (this.alignment1); 240 | global::Gtk.Box.BoxChild w39 = ((global::Gtk.Box.BoxChild)(w1 [this.alignment1])); 241 | w39.Position = 0; 242 | w39.Expand = false; 243 | w39.Fill = false; 244 | // Internal child fit.gui.gtk.TestsFolder.ActionArea 245 | global::Gtk.HButtonBox w40 = this.ActionArea; 246 | w40.Name = "dialog1_ActionArea"; 247 | w40.Spacing = 5; 248 | w40.BorderWidth = ((uint)(10)); 249 | w40.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); 250 | // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild 251 | this.buttonCancel = new global::Gtk.Button (); 252 | this.buttonCancel.CanDefault = true; 253 | this.buttonCancel.CanFocus = true; 254 | this.buttonCancel.Name = "buttonCancel"; 255 | this.buttonCancel.UseStock = true; 256 | this.buttonCancel.UseUnderline = true; 257 | this.buttonCancel.Label = "gtk-cancel"; 258 | this.AddActionWidget (this.buttonCancel, -6); 259 | global::Gtk.ButtonBox.ButtonBoxChild w41 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w40 [this.buttonCancel])); 260 | w41.Expand = false; 261 | w41.Fill = false; 262 | // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild 263 | this.buttonOk = new global::Gtk.Button (); 264 | this.buttonOk.CanDefault = true; 265 | this.buttonOk.CanFocus = true; 266 | this.buttonOk.Name = "buttonOk"; 267 | this.buttonOk.UseStock = true; 268 | this.buttonOk.UseUnderline = true; 269 | this.buttonOk.Label = "gtk-ok"; 270 | w40.Add (this.buttonOk); 271 | global::Gtk.ButtonBox.ButtonBoxChild w42 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w40 [this.buttonOk])); 272 | w42.Position = 1; 273 | w42.Expand = false; 274 | w42.Fill = false; 275 | if ((this.Child != null)) { 276 | this.Child.ShowAll (); 277 | } 278 | this.DefaultWidth = 782; 279 | this.DefaultHeight = 197; 280 | this.Show (); 281 | this.buttonSpecificationsDirectoryPath.Clicked += new global::System.EventHandler (this.OnButtonSpecificationsDirectoryPathClicked); 282 | this.buttonResultsDirectoryPath.Clicked += new global::System.EventHandler (this.OnButtonResultsDirectoryPathClicked); 283 | this.buttonFixturesDirectoryPath.Clicked += new global::System.EventHandler (this.OnButtonFixturesDirectoryPathClicked); 284 | this.buttonOk.Clicked += new global::System.EventHandler (this.OnButtonOkClicked); 285 | } 286 | } 287 | } 288 | --------------------------------------------------------------------------------