├── 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 |
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 | | fit.gui.examples.RightInventoryFixture |
17 |
18 |
19 | | Id |
20 | Name |
21 | Price() |
22 |
23 |
24 | | 1001 |
25 | |
26 | 2000.00 |
27 |
28 |
29 | | 1002 |
30 | |
31 | 3000.00 |
32 |
33 |
34 | | 1003 |
35 | |
36 | 1000.00 |
37 |
38 |
39 |
40 |
41 |
43 |
44 |
45 | | fit.Summary |
46 |
47 | |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Examples/Specifications/WrongRowFixture.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 | WrongRowFixture
7 |
8 |
9 |
10 | Inventory Test
11 |
12 |
14 |
15 |
16 | | fit.gui.examples.WrongInventoryFixture |
17 |
18 |
19 | | Id |
20 | Name |
21 | Price() |
22 |
23 |
24 | | 1001 |
25 | |
26 | 2000.00 |
27 |
28 |
29 | | 1002 |
30 | |
31 | 3000.00 |
32 |
33 |
34 | | 1003 |
35 | |
36 | 1000.00 |
37 |
38 |
39 |
40 |
41 |
43 |
44 |
45 | | fit.Summary |
46 |
47 | |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Examples/Specifications/ExceptionRowFixture.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 | ExceptionRowFixture
7 |
8 |
9 |
10 | Inventory Test
11 |
12 |
14 |
15 |
16 | | fit.gui.examples.ExceptionInventoryFixture |
17 |
18 |
19 | | Id |
20 | Name |
21 | Price() |
22 |
23 |
24 | | 1001 |
25 | |
26 | 2000.00 |
27 |
28 |
29 | | 1002 |
30 | |
31 | 3000.00 |
32 |
33 |
34 | | 1003 |
35 | |
36 | 1000.00 |
37 |
38 |
39 |
40 |
41 |
43 |
44 |
45 | | fit.Summary |
46 |
47 | |
48 |
49 |
50 |
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 | | fit.gui.examples.AdditionFixture |
17 |
18 |
19 | | augend |
20 | addend |
21 | sum |
22 |
23 |
24 | | 2 |
25 | 2 |
26 | 4
27 | |
28 |
29 |
30 | | 3 |
31 | 6 |
32 | 9 |
33 |
34 |
35 | 5
36 | |
37 | 7
38 | |
39 | 12
40 | |
41 |
42 |
43 | | 7 |
44 | 9 |
45 | 16 |
46 |
47 |
48 |
49 |
50 |
52 |
53 |
54 | | fit.Summary |
55 |
56 | |
57 |
58 |
59 |
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 | | fit.gui.examples.AdditionFixture |
17 |
18 |
19 | | augend |
20 | addend |
21 | sum |
22 |
23 |
24 | | 2 |
25 | 2 |
26 | 4
27 | |
28 |
29 |
30 | | 3 |
31 | 6 |
32 | 18 |
33 |
34 |
35 | 5
36 | |
37 | 7
38 | |
39 | 12
40 | |
41 |
42 |
43 | | 7 |
44 | 9 |
45 | 16 |
46 |
47 |
48 |
49 |
50 |
52 |
53 |
54 | | fit.Summary |
55 |
56 | |
57 |
58 |
59 |
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 | | fit.gui.examples.AdditionFixture |
17 |
18 |
19 | | augend |
20 | addend |
21 | sum |
22 |
23 |
24 | | 2 |
25 | 2 |
26 | 4
27 | |
28 |
29 |
30 | | 3 |
31 | 6 |
32 | red |
33 |
34 |
35 | 5
36 | |
37 | 7
38 | |
39 | 12
40 | |
41 |
42 |
43 | | 7 |
44 | 9 |
45 | 16 |
46 |
47 |
48 |
49 |
50 |
52 |
53 |
54 | | fit.Summary |
55 |
56 | |
57 |
58 |
59 |
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 | | fit.gui.examples.MultiplicationFixture |
17 |
18 |
19 | | multiplicand |
20 | multiplier |
21 | product() |
22 |
23 |
24 | | 2 |
25 | 2 |
26 | 4
27 | |
28 |
29 |
30 | | 3 |
31 | 6 |
32 | 18 |
33 |
34 |
35 | 5
36 | |
37 | 7
38 | |
39 | 35
40 | |
41 |
42 |
43 | | 7 |
44 | 9 |
45 | 63 |
46 |
47 |
48 |
49 |
50 |
52 |
53 |
54 | | fit.Summary |
55 |
56 | |
57 |
58 |
59 |
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 | | fit.gui.examples.MultiplicationFixture |
17 |
18 |
19 | | multiplicand |
20 | multiplier |
21 | product() |
22 |
23 |
24 | | 2 |
25 | 2 |
26 | 5
27 | |
28 |
29 |
30 | | 3 |
31 | 6 |
32 | 18 |
33 |
34 |
35 | 5
36 | |
37 | 7
38 | |
39 | 34
40 | |
41 |
42 |
43 | | 7 |
44 | 9 |
45 | 63 |
46 |
47 |
48 |
49 |
50 |
52 |
53 |
54 | | fit.Summary |
55 |
56 | |
57 |
58 |
59 |
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 | | fit.gui.examples.MultiplicationFixture |
17 |
18 |
19 | | multiplicand |
20 | multiplier |
21 | product() |
22 |
23 |
24 | | 2 |
25 | 2 |
26 | 4
27 | |
28 |
29 |
30 | | 3 |
31 | 6 |
32 | 18.5 |
33 |
34 |
35 | 5
36 | |
37 | 7
38 | |
39 | 35
40 | |
41 |
42 |
43 | | 7 |
44 | 9 |
45 | ABCD |
46 |
47 |
48 |
49 |
50 |
52 |
53 |
54 | | fit.Summary |
55 |
56 | |
57 |
58 |
59 |
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 | | fit.ActionFixture |
17 |
18 |
19 | | start |
20 | fit.gui.examples.ConnectionFixture |
21 |
22 | |
23 |
24 |
25 | | press |
26 | Connect |
27 |
28 | |
29 |
30 |
31 | | check |
32 | IsConnected |
33 | True |
34 |
35 |
36 | | press |
37 | Disconnect |
38 |
39 | |
40 |
41 |
42 | | check |
43 | IsConnected |
44 | False |
45 |
46 |
47 |
48 |
49 |
51 |
52 |
53 | | fit.Summary |
54 |
55 | |
56 |
57 |
58 |
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 | | fit.ActionFixture |
17 |
18 |
19 | | start |
20 | fit.gui.examples.ConnectionFixture |
21 |
22 | |
23 |
24 |
25 | | press |
26 | Connect |
27 |
28 | |
29 |
30 |
31 | | check |
32 | IsConnected |
33 | True |
34 |
35 |
36 | | press |
37 | Connect |
38 |
39 | |
40 |
41 |
42 | | check |
43 | IsConnected |
44 | False |
45 |
46 |
47 |
48 |
49 |
51 |
52 |
53 | | fit.Summary |
54 |
55 | |
56 |
57 |
58 |
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 | | fit.ActionFixture |
17 |
18 |
19 | | start |
20 | fit.gui.examples.ConnectionFixture |
21 |
22 | |
23 |
24 |
25 | | press |
26 | Connect |
27 |
28 | |
29 |
30 |
31 | | check |
32 | IsConnected |
33 | True |
34 |
35 |
36 | | press |
37 | Disconnect |
38 |
39 | |
40 |
41 |
42 | | check |
43 | IsConnected2 |
44 | False |
45 |
46 |
47 |
48 |
49 |
51 |
52 |
53 | | fit.Summary |
54 |
55 | |
56 |
57 |
58 |
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 |
--------------------------------------------------------------------------------