Commit 7a30fd2

unknown <mo@.(none)>
2009-09-05 17:33:38
moved all the winforms stuff back in to mo money.
1 parent 15f68f8
Changed files (64)
build
product
Gorilla.Commons.Utility
Gorilla.Commons.Windows.Forms
Gorilla.Commons.Windows.Forms.ThirdParty
build/project.deploy.build
@@ -52,16 +52,6 @@
 		<call target="app.compile" />
 		<copy file="${build.compile.dir}\${app.output}" tofile="${build.artifacts.dir}\${app.output}" />
 
-		<property name="app.output" value="gorilla.commons.windows.forms.dll" />
-		<property name="product.dir" value="${base.dir}\product\gorilla.commons.windows.forms" />
-		<call target="app.compile" />
-		<copy file="${build.compile.dir}\${app.output}" tofile="${build.artifacts.dir}\${app.output}" />
-
-		<property name="app.output" value="gorilla.commons.windows.forms.thirdparty.dll" />
-		<property name="product.dir" value="${base.dir}\product\gorilla.commons.windows.forms.thirdparty" />
-		<call target="app.compile" />
-		<copy file="${build.compile.dir}\${app.output}" tofile="${build.artifacts.dir}\${app.output}" />
-
 		<!--
 		<property name="app.output" value="gorilla.testing.dll" />
 		<property name="product.dir" value="${base.dir}\product\gorilla.commons.testing" />
product/Gorilla.Commons.Utility/Extensions/MappingExtensions.cs
@@ -12,6 +12,11 @@ namespace Gorilla.Commons.Utility.Extensions
             return conversion(item);
         }
 
+        public static Output map_using<Input, Output>(this Input item, IMapper<Input, Output> mapper)
+        {
+            return map_using(item, x => mapper.map_from(x));
+        }
+
         public static IEnumerable<Output> map_all_using<Input, Output>(this IEnumerable<Input> items,
                                                                        Converter<Input, Output> mapper)
         {
@@ -21,7 +26,7 @@ namespace Gorilla.Commons.Utility.Extensions
         public static IEnumerable<Output> map_all_using<Input, Output>(this IEnumerable<Input> items,
                                                                        IMapper<Input, Output> mapper)
         {
-            return null == items ? new List<Output>() : items.Select(x => mapper.map_from(x));
+            return map_all_using(items, x => mapper.map_from(x));
         }
 
         public static IMapper<Left, Right> then<Left, Middle, Right>(this IMapper<Left, Middle> left,
product/Gorilla.Commons.Windows.Forms/Databinding/BindingSelector.cs
@@ -1,30 +0,0 @@
-using System;
-using System.Linq.Expressions;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public interface IBindingSelector<TypeToBindTo>
-    {
-        IPropertyBinder<TypeToBindTo, TypeOfProperty> bind_to_property<TypeOfProperty>(
-            Expression<Func<TypeToBindTo, TypeOfProperty>> property_to_bind_to);
-    }
-
-    public class BindingSelector<TypeToBindTo> : IBindingSelector<TypeToBindTo>
-    {
-        private readonly TypeToBindTo thing_to_bind_to;
-        private readonly IPropertyInspectorFactory factory;
-
-        public BindingSelector(TypeToBindTo thing_to_bind_to, IPropertyInspectorFactory factory)
-        {
-            this.thing_to_bind_to = thing_to_bind_to;
-            this.factory = factory;
-        }
-
-        public IPropertyBinder<TypeToBindTo, TypeOfProperty> bind_to_property<TypeOfProperty>(
-            Expression<Func<TypeToBindTo, TypeOfProperty>> property_to_bind_to)
-        {
-            var property_information = factory.create<TypeToBindTo, TypeOfProperty>().inspect(property_to_bind_to);
-            return new PropertyBinder<TypeToBindTo, TypeOfProperty>(property_information, thing_to_bind_to);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/BindingSelectorSpecs.cs
@@ -1,50 +0,0 @@
-using System;
-using System.Linq.Expressions;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public class BindingSelectorSpecs
-    {
-    }
-
-    [Concern(typeof (BindingSelector<>))]
-    public class when_selecting_a_property_as_the_target_of_a_binding : concerns_for<IBindingSelector<IAnInterface>>
-    {
-        it should_return_a_binder_bound_to_the_correct_property =
-            () => result.property.Name.should_be_equal_to("FirstName");
-
-        it should_inspect_the_expression_for_the_property_information =
-            () => inspector.was_told_to(i => i.inspect(expression_to_parse));
-
-        context c = () =>
-                        {
-                            thing_to_bind_to = an<IAnInterface>();
-                            factory = an<IPropertyInspectorFactory>();
-                            inspector = an<IPropertyInspector<IAnInterface, string>>();
-
-                            factory.is_told_to(f => f.create<IAnInterface, string>()).it_will_return(inspector);
-
-                            inspector.is_told_to(i => i.inspect(null))
-                                .IgnoreArguments().it_will_return(typeof (IAnInterface).GetProperty("FirstName"));
-                        };
-
-        because b = () =>
-                        {
-                            expression_to_parse = (s => s.FirstName);
-                            result = sut.bind_to_property(expression_to_parse);
-                        };
-
-        public override IBindingSelector<IAnInterface> create_sut()
-        {
-            return new BindingSelector<IAnInterface>(thing_to_bind_to, factory);
-        }
-
-        static IAnInterface thing_to_bind_to;
-        static IPropertyBinder<IAnInterface, string> result;
-        static IPropertyInspectorFactory factory;
-        static IPropertyInspector<IAnInterface, string> inspector;
-        static Expression<Func<IAnInterface, string>> expression_to_parse;
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/ComboBoxDataBindingSpecs.cs
@@ -1,66 +0,0 @@
-using System.Windows.Forms;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    [Concern(typeof (Create))]
-    public class when_binding_a_property_from_an_object_to_a_combo_box : concerns
-    {
-        it should_initialize_the_combo_box_with_the_current_value_of_the_property =
-            () => combo_box.SelectedItem.should_be_equal_to(baby_girl);
-
-        context c = () =>
-                        {
-                            combo_box = new ComboBox();
-                            thing_to_bind_to = an<IAnInterface>();
-                            baby_girl = an<IAnInterface>();
-                            baby_boy = an<IAnInterface>();
-
-                            combo_box.Items.Add(baby_boy);
-                            combo_box.Items.Add(baby_girl);
-
-                            when_the(thing_to_bind_to).is_asked_for(t => t.Child).it_will_return(baby_girl);
-                        };
-
-        because b = () => Create
-                              .binding_for(thing_to_bind_to)
-                              .bind_to_property(t => t.Child)
-                              .bound_to_control(combo_box);
-
-        static ComboBox combo_box;
-        static IAnInterface thing_to_bind_to;
-        static IAnInterface baby_girl;
-        static IAnInterface baby_boy;
-    }
-
-    [Concern(typeof (Create))]
-    public class when_changing_the_selected_item_on_a_combo_box_that_is_bound_to_a_property : concerns
-    {
-        it should_change_the_value_of_the_property_that_the_combo_box_is_bound_to =
-            () => thing_to_bind_to.Child.should_be_equal_to(baby_boy);
-
-        context c = () =>
-                        {
-                            combo_box = new ComboBox();
-                            baby_girl = an<IAnInterface>();
-                            baby_boy = an<IAnInterface>();
-                            thing_to_bind_to = new AnImplementation {Child = baby_girl};
-
-                            combo_box.Items.Add(baby_boy);
-                            combo_box.Items.Add(baby_girl);
-
-                            Create
-                                .binding_for(thing_to_bind_to)
-                                .bind_to_property(t => t.Child)
-                                .bound_to_control(combo_box);
-                        };
-
-        because b = () => { combo_box.SelectedItem = baby_boy; };
-
-        static ComboBox combo_box;
-        static IAnInterface thing_to_bind_to;
-        static IAnInterface baby_girl;
-        static IAnInterface baby_boy;
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/ComboBoxPropertyBinding.cs
@@ -1,23 +0,0 @@
-using System.Windows.Forms;
-using Gorilla.Commons.Utility.Extensions;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public class ComboBoxPropertyBinding<TypeToBindTo, PropertyType> : IPropertyBinding<PropertyType>
-    {
-        private readonly IPropertyBinder<TypeToBindTo, PropertyType> binder;
-
-        public ComboBoxPropertyBinding(ComboBox control, IPropertyBinder<TypeToBindTo, PropertyType> binder)
-        {
-            this.binder = binder;
-            control.SelectedItem = binder.current_value();
-            control.SelectedIndexChanged +=
-                delegate { binder.change_value_of_property_to(control.SelectedItem.converted_to<PropertyType>()); };
-        }
-
-        public PropertyType current_value()
-        {
-            return binder.current_value();
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/ControlBindingExtensions.cs
@@ -1,29 +0,0 @@
-using System;
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public static class ControlBindingExtensions
-    {
-        public static IPropertyBinding<PropertyType> bound_to_control<TypeToBindTo, PropertyType>(
-            this IPropertyBinder<TypeToBindTo, PropertyType> binder,
-            Control control)
-        {
-            return new TextPropertyBinding<TypeToBindTo, PropertyType>(control, binder);
-        }
-
-        public static IPropertyBinding<PropertyType> bound_to_control<TypeToBindTo, PropertyType>(
-            this IPropertyBinder<TypeToBindTo, PropertyType> binder,
-            ComboBox control)
-        {
-            return new ComboBoxPropertyBinding<TypeToBindTo, PropertyType>(control, binder);
-        }
-
-        public static IPropertyBinding<DateTime> bound_to_control<TypeToBindTo>(
-            this IPropertyBinder<TypeToBindTo, DateTime> binder,
-            DateTimePicker control)
-        {
-            return new DateTimePickerPropertyBinding<TypeToBindTo>(control, binder);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/Create.cs
@@ -1,24 +0,0 @@
-using System;
-using System.Linq.Expressions;
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public static class Create
-    {
-        public static IBindingSelector<TypeToBindTo> binding_for<TypeToBindTo>(TypeToBindTo thing_to_bind_to)
-        {
-            return new BindingSelector<TypeToBindTo>(thing_to_bind_to, new PropertyInspectorFactory());
-        }
-
-        public static IPropertyBinding<TypeOfProperty> bind_to<TypeToBindTo, TypeOfProperty>(
-            this Control control,
-            TypeToBindTo dto,
-            Expression<Func<TypeToBindTo, TypeOfProperty>> property_to_bind_to)
-        {
-            return binding_for(dto)
-                .bind_to_property(property_to_bind_to)
-                .bound_to_control(control);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/CreateSpecs.cs
@@ -1,34 +0,0 @@
-using System.Windows.Forms;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public class CreateSpecs
-    {
-    }
-
-    public abstract class when_a_text_control_is_bound_to_an_item : concerns
-    {
-        context c = () =>
-                        {
-                            textbox = new TextBox();
-                            item = new TestItem {name = "k"};
-                            textbox.bind_to(item, x => x.name);
-                        };
-
-        static protected TextBox textbox;
-        static protected TestItem item;
-    }
-
-    public class when_the_value_of_a_text_control_changes : when_a_text_control_is_bound_to_an_item
-    {
-        it should_update_the_value_of_the_property_on_the_item = () => item.name.should_be_equal_to("mo");
-        because b = () => { textbox.Text = "mo"; };
-    }
-
-    public class TestItem
-    {
-        public string name { get; set; }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/DateTimePickerPropertyBinding.cs
@@ -1,21 +0,0 @@
-using System;
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public class DateTimePickerPropertyBinding<TypeToBindTo> : IPropertyBinding<DateTime>
-    {
-        private readonly IPropertyBinder<TypeToBindTo, DateTime> binder;
-
-        public DateTimePickerPropertyBinding(DateTimePicker control, IPropertyBinder<TypeToBindTo, DateTime> binder)
-        {
-            this.binder = binder;
-            control.ValueChanged += (o, e) => binder.change_value_of_property_to(control.Value);
-        }
-
-        public DateTime current_value()
-        {
-            return binder.current_value();
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/DateTimePropertyBindingSpecs.cs
@@ -1,39 +0,0 @@
-using System;
-using System.Windows.Forms;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    [Concern(typeof (Create))]
-    public class when_a_new_date_is_selected_by_a_date_time_picker_that_is_bound_to_a_property : concerns
-    {
-        it should_update_the_value_of_the_property =
-            () => Assertions.should_be_equal_to(thing_to_bind_to.birth_day, november_nineteenth);
-
-        context c = () =>
-                        {
-                            date_time_picker = new DateTimePicker {Value = DateTime.Now};
-                            thing_to_bind_to = new TestDTO {birth_day = DateTime.Now};
-
-                            Create.binding_for(thing_to_bind_to)
-                                .bind_to_property(x => x.birth_day)
-                                .bound_to_control(date_time_picker);
-                        };
-
-        because b = () => { date_time_picker.Value = november_nineteenth; };
-
-        static DateTimePicker date_time_picker;
-        static TestDTO thing_to_bind_to;
-        static readonly DateTime november_nineteenth = new DateTime(2006, 11, 19);
-    }
-
-    public class TestDTO
-    {
-        public DateTime birth_day { get; set; }
-    }
-
-    public class DateTimePropertyBindingSpecs
-    {
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/IPropertyBinding.cs
@@ -1,7 +0,0 @@
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public interface IPropertyBinding<PropertyType>
-    {
-        PropertyType current_value();
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/ListboxExtensions.cs
@@ -1,15 +0,0 @@
-using System.Collections.Generic;
-using System.Windows.Forms;
-using Gorilla.Commons.Utility.Extensions;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    static public class ListboxExtensions
-    {
-        static public void bind_to<T>(this ComboBox control, IEnumerable<T> items)
-        {
-            control.Items.Clear();
-            items.each(x => control.Items.Add(x));
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/PropertyBinder.cs
@@ -1,34 +0,0 @@
-using System.Reflection;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public interface IPropertyBinder<TypeToBindTo, PropertyType>
-    {
-        TypeToBindTo target { get; }
-        PropertyInfo property { get; }
-        PropertyType current_value();
-        void change_value_of_property_to(PropertyType new_value);
-    }
-
-    public class PropertyBinder<TypeToBindTo, PropertyType> : IPropertyBinder<TypeToBindTo, PropertyType>
-    {
-        public PropertyBinder(PropertyInfo propery_information, TypeToBindTo target)
-        {
-            property = target.GetType().GetProperty(propery_information.Name);
-            this.target = target;
-        }
-
-        public TypeToBindTo target { get; private set; }
-        public PropertyInfo property { get; private set; }
-
-        public PropertyType current_value()
-        {
-            return (PropertyType) property.GetValue(target, null);
-        }
-
-        public void change_value_of_property_to(PropertyType value)
-        {
-            property.SetValue(target, value, null);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/PropertyBinderSpecs.cs
@@ -1,50 +0,0 @@
-using System.Reflection;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    [Concern(typeof (PropertyBinder<,>))]
-    public abstract class behaves_like_a_property_binder :
-        concerns_for<IPropertyBinder<IAnInterface, string>, PropertyBinder<IAnInterface, string>>
-    {
-        public override IPropertyBinder<IAnInterface, string> create_sut()
-        {
-            return new PropertyBinder<IAnInterface, string>(property, target);
-        }
-
-        context c = () =>
-                        {
-                            target = new AnImplementation {FirstName = "malik"};
-                            property = typeof (IAnInterface).GetProperty("FirstName");
-                        };
-
-        static protected IAnInterface target;
-        static protected PropertyInfo property;
-    }
-
-    [Concern(typeof (PropertyBinder<,>))]
-    public class when_changing_the_value_of_correctly_bound_property : behaves_like_a_property_binder
-    {
-        it should_update_the_value_of_the_property_of_the_target_of_the_binder =
-            () => target.FirstName.should_be_equal_to(first_name);
-
-        because b = () => sut.change_value_of_property_to(first_name);
-
-        const string first_name = "mo";
-    }
-
-    [Concern(typeof (PropertyBinder<,>))]
-    public class when_retrieving_the_current_value_of_a_bound_property : behaves_like_a_property_binder
-    {
-        it should_return_the_correct_value = () => result.should_be_equal_to("malik");
-
-        because b = () => { result = sut.current_value(); };
-
-        static string result;
-    }
-
-    public class PropertyBinderSpecs
-    {
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/PropertyInspector.cs
@@ -1,21 +0,0 @@
-using System;
-using System.Linq.Expressions;
-using System.Reflection;
-using Gorilla.Commons.Utility.Extensions;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public interface IPropertyInspector<TypeToBindTo, TypeOfProperty>
-    {
-        PropertyInfo inspect(Expression<Func<TypeToBindTo, TypeOfProperty>> property_to_bind_to);
-    }
-
-    public class PropertyInspector<TypeToBindTo, TypeOfProperty> : IPropertyInspector<TypeToBindTo, TypeOfProperty>
-    {
-        public PropertyInfo inspect(Expression<Func<TypeToBindTo, TypeOfProperty>> property_to_bind_to)
-        {
-            var expression = property_to_bind_to.Body.downcast_to<MemberExpression>();
-            return expression.Member.downcast_to<PropertyInfo>();
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/PropertyInspectorFactory.cs
@@ -1,15 +0,0 @@
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public interface IPropertyInspectorFactory
-    {
-        IPropertyInspector<TypeToInspect, TypeOfProperty> create<TypeToInspect, TypeOfProperty>();
-    }
-
-    public class PropertyInspectorFactory : IPropertyInspectorFactory
-    {
-        public IPropertyInspector<TypeToInspect, TypeOfProperty> create<TypeToInspect, TypeOfProperty>()
-        {
-            return new PropertyInspector<TypeToInspect, TypeOfProperty>();
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/PropertyInspectorSpecs.cs
@@ -1,26 +0,0 @@
-using System.Reflection;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    [Concern(typeof (PropertyInspector<,>))]
-    public class when_parsing_a_valie_expression_for_the_information_on_the_property :
-        concerns_for<IPropertyInspector<IAnInterface, string>, PropertyInspector<IAnInterface, string>>
-    {
-        it should_return_the_correct_property_information = () => result.Name.should_be_equal_to("FirstName");
-
-        because b = () => { result = sut.inspect(s => s.FirstName); };
-
-        public override IPropertyInspector<IAnInterface, string> create_sut()
-        {
-            return new PropertyInspector<IAnInterface, string>();
-        }
-
-        static PropertyInfo result;
-    }
-
-    public class PropertyInspectorSpecs
-    {
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/TextBoxDataBindingSpecs.cs
@@ -1,65 +0,0 @@
-using System.Windows.Forms;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    [Concern(typeof (Create))]
-    public class when_binding_a_property_on_an_object_to_a_textbox : concerns
-    {
-        it should_initialize_the_text_of_the_textbox_to_the_value_of_the_property =
-            () => text_box.Text.should_be_equal_to(first_name);
-
-        context c = () =>
-                        {
-                            thing_to_bind_to = an<IAnInterface>();
-                            text_box = new TextBox();
-                            thing_to_bind_to.is_asked_for(t => t.FirstName).it_will_return(first_name);
-                        };
-
-        because b = () => Create
-                              .binding_for(thing_to_bind_to)
-                              .bind_to_property(t => t.FirstName)
-                              .bound_to_control(text_box);
-
-        static TextBox text_box;
-        static IAnInterface thing_to_bind_to;
-        static string first_name = "mO";
-    }
-
-    [Concern(typeof (Create))]
-    public class when_updating_the_text_of_a_bound_text_box : concerns
-    {
-        it should_update_the_value_of_the_property_that_the_textbox_is_bound_to =
-            () => thing_to_bind_to.FirstName.should_be_equal_to(expected_name);
-
-        context c = () =>
-                        {
-                            thing_to_bind_to = new AnImplementation {FirstName = "abshir"};
-                            text_box = new TextBox();
-
-                            Create
-                                .binding_for(thing_to_bind_to)
-                                .bind_to_property(t => t.FirstName)
-                                .bound_to_control(text_box);
-                        };
-
-        because b = () => { text_box.Text = expected_name; };
-
-        static TextBox text_box;
-        static IAnInterface thing_to_bind_to;
-        static string expected_name = "ugo";
-    }
-
-    public interface IAnInterface
-    {
-        string FirstName { get; }
-        IAnInterface Child { get; }
-    }
-
-    public class AnImplementation : IAnInterface
-    {
-        public string FirstName { get; set; }
-        public IAnInterface Child { get; set; }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/TextBoxExtensions.cs
@@ -1,13 +0,0 @@
-using System.Windows.Forms;
-using Gorilla.Commons.Windows.Forms.Helpers;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    static public class TextBoxExtensions
-    {
-        static public ITextControl<T> text_control<T>(this TextBox textbox)
-        {
-            return new TextControl<T>(textbox);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Databinding/TextPropertyBinding.cs
@@ -1,23 +0,0 @@
-using System.Windows.Forms;
-using Gorilla.Commons.Utility.Extensions;
-
-namespace Gorilla.Commons.Windows.Forms.Databinding
-{
-    public class TextPropertyBinding<TypeToBindTo, PropertyType> : IPropertyBinding<PropertyType>
-    {
-        readonly IPropertyBinder<TypeToBindTo, PropertyType> binder;
-
-        public TextPropertyBinding(Control control, IPropertyBinder<TypeToBindTo, PropertyType> binder)
-        {
-            this.binder = binder;
-            control.Text = "{0}".formatted_using(binder.current_value());
-            control.TextChanged +=
-                (o, e) => binder.change_value_of_property_to(control.Text.converted_to<PropertyType>());
-        }
-
-        public PropertyType current_value()
-        {
-            return binder.current_value();
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/BindableListBox.cs
@@ -1,30 +0,0 @@
-using System.Collections.Generic;
-using Gorilla.Commons.Utility.Extensions;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class BindableListBox<TItemToBindTo> : IBindableList<TItemToBindTo>
-    {
-        readonly IListControl<TItemToBindTo> list_control;
-
-        public BindableListBox(IListControl<TItemToBindTo> list_control)
-        {
-            this.list_control = list_control;
-        }
-
-        public void bind_to(IEnumerable<TItemToBindTo> items)
-        {
-            items.each(x => list_control.add_item(x));
-        }
-
-        public TItemToBindTo get_selected_item()
-        {
-            return list_control.get_selected_item();
-        }
-
-        public void set_selected_item(TItemToBindTo item)
-        {
-            list_control.set_selected_item(item);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/BindableListBoxSpecs.cs
@@ -1,49 +0,0 @@
-using System.Collections.Generic;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class BindableListBoxSpecs
-    {
-    }
-
-    [Concern(typeof(BindableListBox<>))]
-    public class behaves_like_bindable_list : concerns_for<IBindableList<string>, BindableListBox<string>>
-    {
-        context c = () => { control = the_dependency<IListControl<string>>(); };
-
-        static protected IListControl<string> control;
-    }
-
-    [Concern(typeof(BindableListBox<>))]
-    public class when_binding_a_bunch_of_items_to_a_list_control : behaves_like_bindable_list
-    {
-        it should_add_each_item_to_the_list_control = () =>
-                                                          {
-                                                              control.was_told_to(x => x.add_item("timone"));
-                                                              control.was_told_to(x => x.add_item("pumba"));
-                                                          };
-
-        because b = () => sut.bind_to(new List<string> {"timone", "pumba",});
-    }
-
-    [Concern(typeof(BindableListBox<>))]
-    public class when_assigning_the_selected_item_of_a_list_control : behaves_like_bindable_list
-    {
-        it should_tell_the_list_control_to_select_that_item =
-            () => control.was_told_to(x => x.set_selected_item("arthur"));
-
-        because b = () => sut.set_selected_item("arthur");
-    }
-
-    [Concern(typeof(BindableListBox<>))]
-    public class when_getting_the_selected_item_from_a_list_control : behaves_like_bindable_list
-    {
-        it should_return_the_selected_item = () => result.should_be_equal_to("curious george");
-        context c = () => when_the(control).is_told_to(x => x.get_selected_item()).it_will_return("curious george");
-        because b = () => { result = sut.get_selected_item(); };
-
-        static string result;
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/BindableListExtensions.cs
@@ -1,17 +0,0 @@
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    static public class BindableListExtensions
-    {
-        static public IBindableList<TItemToBindTo> create_for<TItemToBindTo>(this ListBox listbox)
-        {
-            return BindableListFactory.create_for(new ListBoxListControl<TItemToBindTo>(listbox));
-        }
-
-        static public IBindableList<TItemToBindTo> create_for<TItemToBindTo>(this ComboBox combobox)
-        {
-            return BindableListFactory.create_for(new ComboBoxListControl<TItemToBindTo>(combobox));
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/BindableListFactory.cs
@@ -1,10 +0,0 @@
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    static public class BindableListFactory
-    {
-        static public IBindableList<TItemToBindTo> create_for<TItemToBindTo>(IListControl<TItemToBindTo> list_control)
-        {
-            return new BindableListBox<TItemToBindTo>(list_control);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/BindableTextBox.cs
@@ -1,46 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Gorilla.Commons.Utility.Extensions;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public interface IBindableTextBox<T>
-    {
-        void bind_to(T item);
-        T get_selected_value();
-        string text();
-        void on_leave(Action<IBindableTextBox<T>> action);
-    }
-
-    public class BindableTextBox<T> : IBindableTextBox<T>
-    {
-        readonly ITextControl<T> control;
-        readonly IList<Action<IBindableTextBox<T>>> actions = new List<Action<IBindableTextBox<T>>>();
-
-        public BindableTextBox(ITextControl<T> control)
-        {
-            this.control = control;
-            control.when_text_is_changed = () => actions.each(x => x(this));
-        }
-
-        public void bind_to(T item)
-        {
-            control.set_selected_item(item);
-        }
-
-        public T get_selected_value()
-        {
-            return control.get_selected_item();
-        }
-
-        public string text()
-        {
-            return control.text();
-        }
-
-        public void on_leave(Action<IBindableTextBox<T>> action)
-        {
-            actions.Add(action);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/BindableTextBoxExtensions.cs
@@ -1,28 +0,0 @@
-using System;
-using System.Linq.Expressions;
-using Gorilla.Commons.Utility.Extensions;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    static public class BindableTextBoxExtensions
-    {
-        static public IBindableTextBox<ItemToBindTo> rebind_with<ItemToBindTo>(
-            this ITextControl<ItemToBindTo> text_control, Expression<Func<string, ItemToBindTo>> rebind)
-        {
-            return text_control.apply(new RebindTextBoxCommand<ItemToBindTo>(rebind));
-        }
-
-        static public IBindableTextBox<ItemToBindTo> apply<ItemToBindTo>(this ITextControl<ItemToBindTo> text_control,
-                                                                         params ITextBoxCommand<ItemToBindTo>[] commands)
-        {
-            return new BindableTextBox<ItemToBindTo>(text_control).apply(commands);
-        }
-
-        static public IBindableTextBox<ItemToBindTo> apply<ItemToBindTo>(this IBindableTextBox<ItemToBindTo> textbox,
-                                                                         params ITextBoxCommand<ItemToBindTo>[] commands)
-        {
-            commands.each(x => textbox.on_leave(y => x.run(y)));
-            return textbox;
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/BindableTextBoxExtensionsSpecs.cs
@@ -1,33 +0,0 @@
-using System;
-using System.Windows.Forms;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class BindableTextBoxExtensionsSpecs
-    {
-    }
-
-    [Concern(typeof (BindableTextBoxExtensions))]
-    public class when_binding_a_text_control_to_a_command : concerns
-    {
-        it should_run_each_command_when_the_text_changes_in_the_text_control = () => command.was_told_to(x => x.run(result));
-
-        context c = () =>
-                        {
-                            textbox = new TextBox();
-                            command = an<ITextBoxCommand<string>>();
-                        };
-
-        because b = () =>
-                        {
-                            result = new TextControl<string>(textbox).apply(command);
-                            textbox.control_is(x => x.OnLeave(new EventArgs()));
-                        };
-
-        static TextBox textbox;
-        static ITextBoxCommand<string> command;
-        static IBindableTextBox<string> result;
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/BindableTextBoxSpecs.cs
@@ -1,54 +0,0 @@
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-using Gorilla.Commons.Utility.Core;
-using Gorilla.Commons.Utility.Extensions;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class BindableTextBoxSpecs
-    {
-    }
-
-    [Concern(typeof (BindableTextBox<>))]
-    public class concerns_for_text_box : concerns_for<IBindableTextBox<string>, BindableTextBox<string>>
-    {
-        context c = () => { control = the_dependency<ITextControl<string>>(); };
-
-        static protected ITextControl<string> control;
-    }
-
-    [Concern(typeof (BindableTextBox<>))]
-    public class when_binding_an_item_to_a_textbox : concerns_for_text_box
-    {
-        it should_change_the_text_of_the_text_control = () => control.was_told_to(x => x.set_selected_item("shrek"));
-
-        because b = () => sut.bind_to("shrek");
-    }
-
-    [Concern(typeof (BindableTextBox<>))]
-    public class when_getting_the_current_value_of_a_text_box : concerns_for_text_box
-    {
-        it should_return_the_current_value_of_the_text_box = () => result.should_be_equal_to("popeye");
-
-        context c = () => when_the(control).is_told_to(x => x.get_selected_item()).it_will_return("popeye");
-        because b = () => { result = sut.get_selected_value(); };
-
-        static string result;
-    }
-
-    [Concern(typeof (BindableTextBox<>))]
-    public class when_an_action_needs_to_be_performed_when_the_value_of_a_textbox_changes : concerns_for_text_box
-    {
-        it should_perform_that_action = () => action.was_told_to(x => x.run());
-
-        context c = () => { action = an<ICommand>(); };
-
-        because b = () =>
-                        {
-                            sut.on_leave(x => action.run());
-                            control.when_text_is_changed();
-                        };
-
-        static ICommand action;
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/BitmapRegion.cs
@@ -1,125 +0,0 @@
-using System.Drawing;
-using System.Drawing.Drawing2D;
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public static class BitmapRegion
-    {
-        /// <summary>
-        /// create and apply the region on the supplied control
-        /// </summary>
-        /// <param name="control">The Control object to apply the region to</param>
-        /// <param name="bitmap">The Bitmap object to create the region from</param>
-        public static void CreateControlRegion(Control control, Bitmap bitmap)
-        {
-            // Return if control and bitmap are null
-            if (control == null || bitmap == null)
-                return;
-
-            // Set our control's size to be the same as the bitmap + 6 pixels so that the borders don't affect it.
-            control.Width = bitmap.Width;
-            control.Height = bitmap.Height;
-
-            // Check if we are dealing with Form here
-            if (control is Form)
-            {
-                // Cast to a Form object
-                var form = (Form) control;
-
-                // Set our form's size to be a little larger that the bitmap just 
-                // in case the form's border style is not set to none in the first place
-                form.Width += 15;
-                form.Height += 35;
-
-                // No border
-                form.FormBorderStyle = FormBorderStyle.None;
-
-                // Set bitmap as the background image
-                form.BackgroundImage = bitmap;
-
-                // Calculate the graphics path based on the bitmap supplied
-                var graphicsPath = CalculateControlGraphicsPath(bitmap);
-
-                // Apply new region
-                form.Region = new Region(graphicsPath);
-            }
-
-                // Check if we are dealing with Button here
-            else if (control is Button)
-            {
-                // Cast to a button object
-                var button = (Button) control;
-
-                // Do not show button text
-                button.Text = "";
-
-                // Change cursor to hand when over button
-                button.Cursor = Cursors.Hand;
-
-                // Set background image of button
-                button.BackgroundImage = bitmap;
-
-                // Calculate the graphics path based on the bitmap supplied
-                var graphicsPath = CalculateControlGraphicsPath(bitmap);
-
-                // Apply new region
-                button.Region = new Region(graphicsPath);
-            }
-        }
-
-        /// <summary>
-        /// Calculate the graphics path that representing the figure in the bitmap 
-        /// excluding the transparent color which is the top left pixel.
-        /// </summary>
-        /// <param name="bitmap">The Bitmap object to calculate our graphics path from</param>
-        /// <returns>Calculated graphics path</returns>
-        static GraphicsPath CalculateControlGraphicsPath(Bitmap bitmap)
-        {
-            // create GraphicsPath for our bitmap calculation
-            var graphicsPath = new GraphicsPath();
-
-            // Use the top left pixel as our transparent color
-            var colorTransparent = bitmap.GetPixel(0, 0);
-
-            // This is to store the column value where an opaque pixel is first found.
-            // This value will determine where we start scanning for trailing opaque pixels.
-            var colOpaquePixel = 0;
-
-            // Go through all rows (Y axis)
-            for (var row = 0; row < bitmap.Height; row ++)
-            {
-                // Reset value
-                colOpaquePixel = 0;
-
-                // Go through all columns (X axis)
-                for (var col = 0; col < bitmap.Width; col ++)
-                {
-                    // If this is an opaque pixel, mark it and search for anymore trailing behind
-                    if (bitmap.GetPixel(col, row) != colorTransparent)
-                    {
-                        // Opaque pixel found, mark current position
-                        colOpaquePixel = col;
-
-                        // create another variable to set the current pixel position
-                        var colNext = col;
-
-                        // Starting from current found opaque pixel, search for anymore opaque pixels 
-                        // trailing behind, until a transparent pixel is found or minimum width is reached
-                        for (colNext = colOpaquePixel; colNext < bitmap.Width; colNext ++)
-                            if (bitmap.GetPixel(colNext, row) == colorTransparent)
-                                break;
-
-                        // Form a rectangle for line of opaque pixels found and add it to our graphics path
-                        graphicsPath.AddRectangle(new Rectangle(colOpaquePixel, row, colNext - colOpaquePixel, 1));
-
-                        // No need to scan the line of opaque pixels just found
-                        col = colNext;
-                    }
-                }
-            }
-            // Return calculated graphics path
-            return graphicsPath;
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/ButtonExtensions.cs
@@ -1,48 +0,0 @@
-using System;
-using System.Drawing;
-using System.Windows.Forms;
-using Gorilla.Commons.Infrastructure.Container;
-using Gorilla.Commons.Utility.Core;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    static public class ButtonExtensions
-    {
-        static public Button will_be_shown_as(this Button button, Bitmap image)
-        {
-            BitmapRegion.CreateControlRegion(button, image);
-            button.MouseLeave += (sender, e) => BitmapRegion.CreateControlRegion(button, image);
-            button.FlatAppearance.BorderSize = 0; //needs to be here so edges don't get affected by borders
-            return button;
-        }
-
-        static public Button when_hovered_over_will_show(this Button button, Bitmap image)
-        {
-            button.MouseEnter += (sender, e) => BitmapRegion.CreateControlRegion(button, image);
-            return button;
-        }
-
-        static public Button will_execute<Command>(this Button button, Func<bool> when) where Command : ICommand
-        {
-            button.Click += (sender, e) => { if (when()) Resolve.the<Command>().run(); };
-            button.Enabled = when();
-            return button;
-        }
-
-        static public Control with_tool_tip(this Control control, string title, string caption)
-        {
-            var tip = new ToolTip
-                          {
-                              IsBalloon = true,
-                              ToolTipTitle = title,
-                              ToolTipIcon = ToolTipIcon.Info,
-                              UseAnimation = true,
-                              UseFading = true,
-                              AutoPopDelay = 10000,
-                          };
-            tip.SetToolTip(control, caption);
-            control.Controls.Add(new ControlAdapter(tip));
-            return control;
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/ComboBoxListControl.cs
@@ -1,31 +0,0 @@
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class ComboBoxListControl<TItemToStore> : IListControl<TItemToStore>
-    {
-        readonly ComboBox combo_box;
-
-        public ComboBoxListControl(ComboBox combo_box)
-        {
-            this.combo_box = combo_box;
-        }
-
-        public TItemToStore get_selected_item()
-        {
-            return (TItemToStore) combo_box.SelectedItem;
-        }
-
-        public void add_item(TItemToStore item)
-        {
-            combo_box.Items.Add(item);
-            combo_box.SelectedIndex = 0;
-        }
-
-        public void set_selected_item(TItemToStore item)
-        {
-            if (!Equals(item, default(TItemToStore)))
-                if (combo_box.Items.Contains(item)) combo_box.SelectedItem = item;
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/ControlAdapter.cs
@@ -1,21 +0,0 @@
-using System;
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class ControlAdapter : Control
-    {
-        readonly IDisposable item;
-
-        public ControlAdapter(IDisposable item)
-        {
-            this.item = item;
-        }
-
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing) item.Dispose();
-            base.Dispose(disposing);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/ControlExtensions.cs
@@ -1,13 +0,0 @@
-using System;
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    static public class ControlExtensions
-    {
-        static public IDisposable suspend_layout(this Control control)
-        {
-            return new SuspendLayout(control);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/Events.cs
@@ -1,35 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class Events
-    {
-        public interface ControlEvents : IEventTarget
-        {
-            void OnEnter(EventArgs args);
-            void OnKeyPress(KeyPressEventArgs args);
-            void OnKeyUp(KeyEventArgs args);
-            void OnKeyDown(KeyEventArgs args);
-            void OnClick(EventArgs args);
-            void OnDoubleClick(EventArgs args);
-            void OnDragDrop(DragEventArgs args);
-            void OnDragEnter(DragEventArgs args);
-            void OnDragLeave(EventArgs args);
-            void OnDragOver(DragEventArgs args);
-            void OnMouseWheel(MouseEventArgs args);
-            void OnValidated(EventArgs args);
-            void OnValidating(CancelEventArgs args);
-            void OnLeave(EventArgs args);
-        }
-
-        public interface FormEvents : ControlEvents
-        {
-            void OnActivated(EventArgs e);
-            void OnDeactivate(EventArgs e);
-            void OnClosed(EventArgs e);
-            void OnClosing(CancelEventArgs e);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/EventTrigger.cs
@@ -1,81 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Linq.Expressions;
-using System.Reflection;
-using Gorilla.Commons.Utility.Extensions;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public static class EventTrigger
-    {
-        const BindingFlags binding_flags =
-            BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy | BindingFlags.Instance;
-
-        static readonly IDictionary<ExpressionType, Func<Expression, object>> expression_handlers;
-
-        static EventTrigger()
-        {
-            expression_handlers = new Dictionary<ExpressionType, Func<Expression, object>>();
-            expression_handlers[ExpressionType.New] = instantiate_value;
-            expression_handlers[ExpressionType.MemberAccess] = get_value_from_member_access;
-            expression_handlers[ExpressionType.Constant] = get_constant_value;
-        }
-
-        public static void trigger_event<Target>(Expression<Action<Target>> expression_representing_event_to_raise,
-                                                 object target) where Target : IEventTarget
-        {
-            var method_call_expression = expression_representing_event_to_raise.Body.downcast_to<MethodCallExpression>();
-            var method_args = get_parameters_from(method_call_expression.Arguments);
-            var method_name = method_call_expression.Method.Name;
-            var method = target.GetType().GetMethod(method_name, binding_flags);
-
-            method.Invoke(target, method_args.ToArray());
-        }
-
-        static object get_constant_value(Expression expression)
-        {
-            return expression.downcast_to<ConstantExpression>().Value;
-        }
-
-        static object get_value_from_member_access(Expression expression)
-        {
-            var member_expression = expression.downcast_to<MemberExpression>();
-            var type = member_expression.Member.DeclaringType;
-            var member = (FieldInfo) member_expression.Member;
-            var value = member.GetValue(Activator.CreateInstance(type));
-            return value;
-        }
-
-        static object instantiate_value(Expression expression)
-        {
-            var new_expression = expression.downcast_to<NewExpression>();
-            var args = new_expression.Arguments.Select(x => get_value_from_evaluating(x));
-            return new_expression.Constructor.Invoke(args.ToArray());
-        }
-
-        static IEnumerable<object> get_parameters_from(IEnumerable<Expression> parameter_expressions)
-        {
-            foreach (var expression in parameter_expressions)
-            {
-                if (can_handle(expression)) yield return get_value_from_evaluating(expression);
-                else cannot_handle(expression);
-            }
-        }
-
-        static void cannot_handle(Expression expression)
-        {
-            throw new ArgumentException("cannot parse {0}".formatted_using(expression));
-        }
-
-        static object get_value_from_evaluating(Expression expression)
-        {
-            return expression_handlers[expression.NodeType](expression);
-        }
-
-        static bool can_handle(Expression expression)
-        {
-            return expression_handlers.ContainsKey(expression.NodeType);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/EventTriggerExtensions.cs
@@ -1,14 +0,0 @@
-using System;
-using System.Linq.Expressions;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public static class EventTriggerExtensions
-    {
-        public static void control_is<Control>(this Control target, Expression<Action<Events.ControlEvents>> expression)
-            where Control : System.Windows.Forms.Control
-        {
-            EventTrigger.trigger_event(expression, target);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/EventTriggerSpecs.cs
@@ -1,67 +0,0 @@
-using System;
-using System.Windows.Forms;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    [Concern(typeof (EventTrigger))]
-    public class when_invoking_a_call_on_a_target_via_reflection : concerns
-    {
-        it should_correctly_call_that_method =
-            () =>
-                {
-                    control.called_on_key_press.should_be_true();
-                    control.called_on_enter.should_be_false();
-                };
-
-        context c = () => { control = new TestControl(); };
-
-        because b =
-            () =>
-            EventTrigger.trigger_event<Events.ControlEvents>(x => x.OnKeyPress(new KeyPressEventArgs('A')), control);
-
-        static TestControl control;
-    }
-
-    [Concern(typeof (EventTrigger))]
-    public class when_invoking_a_call_on_a_target_by_passing_in_a_parameter : concerns
-    {
-        it should_make_the_call_correctly = () => control.key_press_arguments.should_be_equal_to(args);
-
-        //[Test]
-        //public void should_make_the_call_correctly2()
-        //{
-        //    var new_args = new KeyPressEventArgs('A');
-        //    control = new TestControl();
-        //    EventTrigger.trigger_event<Events.ControlEvents>(x => x.OnKeyPress(new_args), control);
-        //    control.key_press_arguments.should_be_equal_to(new_args);
-        //}
-
-        context c = () => { control = new TestControl(); };
-
-        because b = () => EventTrigger.trigger_event<Events.ControlEvents>(x => x.OnKeyPress(args), control);
-
-        static TestControl control;
-
-        static readonly KeyPressEventArgs args = new KeyPressEventArgs('A');
-    }
-
-    internal class TestControl
-    {
-        public bool called_on_enter;
-        public bool called_on_key_press;
-        public KeyPressEventArgs key_press_arguments;
-
-        protected void OnEnter(EventArgs args)
-        {
-            called_on_enter = true;
-        }
-
-        protected void OnKeyPress(KeyPressEventArgs args)
-        {
-            called_on_key_press = true;
-            key_press_arguments = args;
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/IBindableList.cs
@@ -1,11 +0,0 @@
-using System.Collections.Generic;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public interface IBindableList<ItemToBindTo>
-    {
-        void bind_to(IEnumerable<ItemToBindTo> items);
-        ItemToBindTo get_selected_item();
-        void set_selected_item(ItemToBindTo item);
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/IEventTarget.cs
@@ -1,6 +0,0 @@
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public interface IEventTarget
-    {
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/IListControl.cs
@@ -1,9 +0,0 @@
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public interface IListControl<ItemToStore>
-    {
-        ItemToStore get_selected_item();
-        void add_item(ItemToStore item);
-        void set_selected_item(ItemToStore item);
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/ITextBoxCommand.cs
@@ -1,8 +0,0 @@
-using Gorilla.Commons.Utility.Core;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public interface ITextBoxCommand<T> : IParameterizedCommand<IBindableTextBox<T>>
-    {
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/ITextControl.cs
@@ -1,12 +0,0 @@
-using System;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public interface ITextControl<ItemToStore>
-    {
-        void set_selected_item(ItemToStore item);
-        ItemToStore get_selected_item();
-        string text();
-        Action when_text_is_changed { get; set; }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/ListBoxListControl.cs
@@ -1,29 +0,0 @@
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class ListBoxListControl<TItemToStore> : IListControl<TItemToStore>
-    {
-        readonly ListBox list_box;
-
-        public ListBoxListControl(ListBox list_box)
-        {
-            this.list_box = list_box;
-        }
-
-        public TItemToStore get_selected_item()
-        {
-            return (TItemToStore) list_box.SelectedItem;
-        }
-
-        public void add_item(TItemToStore item)
-        {
-            list_box.Items.Add(item);
-        }
-
-        public void set_selected_item(TItemToStore item)
-        {
-            if (list_box.Items.Contains(item)) list_box.SelectedItem = item;
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/RebindTextBoxCommand.cs
@@ -1,20 +0,0 @@
-using System;
-using System.Linq.Expressions;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class RebindTextBoxCommand<T> : ITextBoxCommand<T>
-    {
-        readonly Expression<Func<string, T>> binder;
-
-        public RebindTextBoxCommand(Expression<Func<string, T>> binder)
-        {
-            this.binder = binder;
-        }
-
-        public void run(IBindableTextBox<T> item)
-        {
-            item.bind_to(binder.Compile()(item.text()));
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/RebindTextBoxCommandSpecs.cs
@@ -1,44 +0,0 @@
-using System;
-using System.Linq.Expressions;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class RebindTextBoxCommandSpecs
-    {
-    }
-
-    [Concern(typeof (RebindTextBoxCommand<>))]
-    public class when_the_text_in_a_textbox_changes :
-        concerns_for<ITextBoxCommand<string>, RebindTextBoxCommand<string>>
-    {
-        context c = () =>
-                        {
-                            textbox = an<IBindableTextBox<string>>();
-                            binder = x => "";
-                        };
-
-        public override ITextBoxCommand<string> create_sut()
-        {
-            return new RebindTextBoxCommand<string>(binder);
-        }
-
-        static protected IBindableTextBox<string> textbox;
-        static protected Expression<Func<string, string>> binder;
-    }
-
-    [Concern(typeof (RebindTextBoxCommand<>))]
-    public class when_rebinding_an_item_to_a_textbox : when_the_text_in_a_textbox_changes
-    {
-        it should_bind_the_text_control_to_the_new_item = () => textbox.was_told_to(x => x.bind_to("kat"));
-
-        context c = () =>
-                        {
-                            binder = x => "kat";
-                            when_the(textbox).is_told_to(x => x.text()).it_will_return("kitty");
-                        };
-
-        because b = () => sut.run(textbox);
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/SuspendLayout.cs
@@ -1,21 +0,0 @@
-using System;
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class SuspendLayout : IDisposable
-    {
-        readonly Control control;
-
-        public SuspendLayout(Control control)
-        {
-            this.control = control;
-            control.SuspendLayout();
-        }
-
-        public void Dispose()
-        {
-            control.ResumeLayout();
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/TextControl.cs
@@ -1,36 +0,0 @@
-using System;
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class TextControl<ItemToStore> : ITextControl<ItemToStore>
-    {
-        readonly TextBox textbox;
-        ItemToStore selected_item;
-
-        public TextControl(TextBox textbox)
-        {
-            this.textbox = textbox;
-            when_text_is_changed = () => { };
-            textbox.Leave += (sender, args) => when_text_is_changed();
-        }
-
-        public void set_selected_item(ItemToStore item)
-        {
-            textbox.Text = item.ToString();
-            selected_item = item;
-        }
-
-        public ItemToStore get_selected_item()
-        {
-            return selected_item;
-        }
-
-        public string text()
-        {
-            return textbox.Text;
-        }
-
-        public Action when_text_is_changed { get; set; }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/TextControlSpecs.cs
@@ -1,63 +0,0 @@
-using System;
-using System.Windows.Forms;
-using developwithpassion.bdd.contexts;
-using Gorilla.Commons.Testing;
-using Gorilla.Commons.Utility.Core;
-
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class TextControlSpecs
-    {
-    }
-
-    [Concern(typeof (TextControl<>))]
-    public abstract class behaves_like_text_control : concerns_for<ITextControl<DateTime>, TextControl<DateTime>>
-    {
-        context c = () => { textbox = new TextBox(); };
-
-        public override ITextControl<DateTime> create_sut()
-        {
-            return new TextControl<DateTime>(textbox);
-        }
-
-        static protected TextBox textbox;
-    }
-
-    [Concern(typeof (TextControl<>))]
-    public class when_a_text_control_is_bound_to_an_item : behaves_like_text_control
-    {
-        it should_display_the_textual_version_of_the_item = () => textbox.Text.should_be_equal_to(date.ToString());
-
-        it should_bind_to_that_item = () => sut.get_selected_item().should_be_equal_to(date);
-
-        context c = () => { date = new DateTime(1984, 04, 28); };
-
-        because b = () => sut.set_selected_item(date);
-
-        static DateTime date;
-    }
-
-    [Concern(typeof (TextControl<>))]
-    public class when_the_text_changes_on_a_text_control_and_action_is_specified : behaves_like_text_control
-    {
-        it should_invoke_the_action_bound_to_it = () => action.was_told_to(x => x.run());
-
-        context c = () => { action = an<ICommand>(); };
-
-        because b = () =>
-                        {
-                            sut.when_text_is_changed = () => action.run();
-                            textbox.control_is(x => x.OnLeave(new EventArgs()));
-                        };
-
-        static ICommand action;
-    }
-
-    [Concern(typeof (TextControl<>))]
-    public class when_the_text_changes_on_a_text_control_and_action_is_not_specified : behaves_like_text_control
-    {
-        it should_not_blow_up = () => { };
-
-        because b = () => textbox.control_is(x => x.OnLeave(new EventArgs()));
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Helpers/ValidateTextBoxCommandSpecs.cs
@@ -1,7 +0,0 @@
-namespace Gorilla.Commons.Windows.Forms.Helpers
-{
-    public class ValidateTextBoxCommandSpecs
-    {
-        
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Keyboard/ShortcutKey.cs
@@ -1,24 +0,0 @@
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Keyboard
-{
-    public class ShortcutKey
-    {
-        private readonly Keys key;
-
-        public ShortcutKey(Keys key)
-        {
-            this.key = key;
-        }
-
-        public ShortcutKey and(ShortcutKey other_key)
-        {
-            return new ShortcutKey(key | other_key.key);
-        }
-
-        public static implicit operator Keys(ShortcutKey key_to_convert)
-        {
-            return key_to_convert.key;
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Keyboard/ShortcutKeys.cs
@@ -1,16 +0,0 @@
-using System.Windows.Forms;
-
-namespace Gorilla.Commons.Windows.Forms.Keyboard
-{
-    static public class ShortcutKeys
-    {
-        static public readonly ShortcutKey control = new ShortcutKey(Keys.Control);
-        static public readonly ShortcutKey alt = new ShortcutKey(Keys.Alt);
-        static public readonly ShortcutKey none = new ShortcutKey(Keys.None);
-        static public readonly ShortcutKey L = new ShortcutKey(Keys.L);
-        static public readonly ShortcutKey N = new ShortcutKey(Keys.N);
-        static public readonly ShortcutKey O = new ShortcutKey(Keys.O);
-        static public readonly ShortcutKey S = new ShortcutKey(Keys.S);
-        static public readonly ShortcutKey X = new ShortcutKey(Keys.X);
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Resources/ApplicationIcon.cs
@@ -1,44 +0,0 @@
-using System;
-using System.Drawing;
-using System.IO;
-using Gorilla.Commons.Infrastructure.Reflection;
-
-namespace Gorilla.Commons.Windows.Forms.Resources
-{
-    public class ApplicationIcon : IDisposable
-    {
-        readonly Icon underlying_icon;
-
-        public ApplicationIcon(string name_of_the_icon, Action<ApplicationIcon> action)
-        {
-            this.name_of_the_icon = name_of_the_icon;
-            if (icon_can_be_found())
-            {
-                action(this);
-                underlying_icon = new Icon(find_full_path_to(this));
-            }
-        }
-
-        public string name_of_the_icon { get; private set; }
-
-        public virtual void Dispose()
-        {
-            if (underlying_icon != null) underlying_icon.Dispose();
-        }
-
-        static public implicit operator Icon(ApplicationIcon icon_to_convert)
-        {
-            return icon_to_convert.underlying_icon;
-        }
-
-        protected string find_full_path_to(ApplicationIcon icon_to_convert)
-        {
-            return Path.Combine(icon_to_convert.startup_directory() + @"\icons", icon_to_convert.name_of_the_icon);
-        }
-
-        protected bool icon_can_be_found()
-        {
-            return File.Exists(find_full_path_to(this));
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Resources/ApplicationImage.cs
@@ -1,39 +0,0 @@
-using System;
-using System.Drawing;
-using System.IO;
-using Gorilla.Commons.Infrastructure.Reflection;
-
-namespace Gorilla.Commons.Windows.Forms.Resources
-{
-    public class ApplicationImage : IDisposable
-    {
-        readonly string name_of_the_image;
-        readonly Image underlying_image;
-
-        public ApplicationImage(string name_of_the_image)
-        {
-            this.name_of_the_image = name_of_the_image;
-            underlying_image = Image.FromFile(FullPathToTheFile(this));
-        }
-
-        public static implicit operator Image(ApplicationImage image_to_convert)
-        {
-            return image_to_convert.underlying_image;
-        }
-
-        public static implicit operator Bitmap(ApplicationImage image_to_convert)
-        {
-            return new Bitmap(image_to_convert);
-        }
-
-        string FullPathToTheFile(ApplicationImage image_to_convert)
-        {
-            return Path.Combine(image_to_convert.startup_directory() + @"\images", image_to_convert.name_of_the_image);
-        }
-
-        public void Dispose()
-        {
-            underlying_image.Dispose();
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Resources/HybridIcon.cs
@@ -1,29 +0,0 @@
-using System;
-using System.Drawing;
-
-namespace Gorilla.Commons.Windows.Forms.Resources
-{
-    public class HybridIcon : ApplicationIcon
-    {
-        readonly Image underlying_image;
-
-        public HybridIcon(string name_of_the_icon, Action<ApplicationIcon> action) : base(name_of_the_icon, action)
-        {
-            if (icon_can_be_found())
-            {
-                underlying_image = Image.FromFile(find_full_path_to(this));
-            }
-        }
-
-        public override void Dispose()
-        {
-            base.Dispose();
-            if (underlying_image != null) underlying_image.Dispose();
-        }
-
-        static public implicit operator Image(HybridIcon icon_to_convert)
-        {
-            return icon_to_convert.underlying_image;
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms/Gorilla.Commons.Windows.Forms.csproj
@@ -58,63 +58,6 @@
     <Reference Include="System.Data" />
     <Reference Include="System.Xml" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Databinding\BindingSelector.cs" />
-    <Compile Include="Databinding\BindingSelectorSpecs.cs" />
-    <Compile Include="Databinding\ComboBoxDataBindingSpecs.cs" />
-    <Compile Include="Databinding\ComboBoxPropertyBinding.cs" />
-    <Compile Include="Databinding\ControlBindingExtensions.cs" />
-    <Compile Include="Databinding\Create.cs" />
-    <Compile Include="Databinding\CreateSpecs.cs" />
-    <Compile Include="Databinding\DateTimePickerPropertyBinding.cs" />
-    <Compile Include="Databinding\DateTimePropertyBindingSpecs.cs" />
-    <Compile Include="Databinding\IPropertyBinding.cs" />
-    <Compile Include="Databinding\ListboxExtensions.cs" />
-    <Compile Include="Databinding\PropertyBinder.cs" />
-    <Compile Include="Databinding\PropertyBinderSpecs.cs" />
-    <Compile Include="Databinding\PropertyInspector.cs" />
-    <Compile Include="Databinding\PropertyInspectorFactory.cs" />
-    <Compile Include="Databinding\PropertyInspectorSpecs.cs" />
-    <Compile Include="Databinding\TextBoxDataBindingSpecs.cs" />
-    <Compile Include="Databinding\TextBoxExtensions.cs" />
-    <Compile Include="Databinding\TextPropertyBinding.cs" />
-    <Compile Include="Helpers\BindableListBox.cs" />
-    <Compile Include="Helpers\BindableListBoxSpecs.cs" />
-    <Compile Include="Helpers\BindableListExtensions.cs" />
-    <Compile Include="Helpers\BindableListFactory.cs" />
-    <Compile Include="Helpers\BindableTextBox.cs" />
-    <Compile Include="Helpers\BindableTextBoxExtensions.cs" />
-    <Compile Include="Helpers\BindableTextBoxExtensionsSpecs.cs" />
-    <Compile Include="Helpers\BindableTextBoxSpecs.cs" />
-    <Compile Include="Helpers\BitmapRegion.cs" />
-    <Compile Include="Helpers\ButtonExtensions.cs" />
-    <Compile Include="Helpers\ComboBoxListControl.cs" />
-    <Compile Include="Helpers\ControlAdapter.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="Helpers\ControlExtensions.cs" />
-    <Compile Include="Helpers\Events.cs" />
-    <Compile Include="Helpers\EventTrigger.cs" />
-    <Compile Include="Helpers\EventTriggerExtensions.cs" />
-    <Compile Include="Helpers\EventTriggerSpecs.cs" />
-    <Compile Include="Helpers\IBindableList.cs" />
-    <Compile Include="Helpers\IEventTarget.cs" />
-    <Compile Include="Helpers\IListControl.cs" />
-    <Compile Include="Helpers\ITextBoxCommand.cs" />
-    <Compile Include="Helpers\ITextControl.cs" />
-    <Compile Include="Helpers\ListBoxListControl.cs" />
-    <Compile Include="Helpers\RebindTextBoxCommand.cs" />
-    <Compile Include="Helpers\RebindTextBoxCommandSpecs.cs" />
-    <Compile Include="Helpers\SuspendLayout.cs" />
-    <Compile Include="Helpers\TextControl.cs" />
-    <Compile Include="Helpers\TextControlSpecs.cs" />
-    <Compile Include="Helpers\ValidateTextBoxCommandSpecs.cs" />
-    <Compile Include="Keyboard\ShortcutKey.cs" />
-    <Compile Include="Keyboard\ShortcutKeys.cs" />
-    <Compile Include="Resources\ApplicationIcon.cs" />
-    <Compile Include="Resources\ApplicationImage.cs" />
-    <Compile Include="Resources\HybridIcon.cs" />
-  </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Gorilla.Commons.Infrastructure\Gorilla.Commons.Infrastructure.csproj">
       <Project>{AA5EEED9-4531-45F7-AFCD-AD9717D2E405}</Project>
product/Gorilla.Commons.Windows.Forms.ThirdParty/Krypton/BindableListExtensions.cs
@@ -1,18 +0,0 @@
-using ComponentFactory.Krypton.Toolkit;
-using Gorilla.Commons.Windows.Forms.Helpers;
-
-namespace Gorilla.Commons.Windows.Forms.Krypton
-{
-    static public class BindableListExtensions
-    {
-        static public IBindableList<TItemToBindTo> create_for<TItemToBindTo>(this KryptonListBox listbox)
-        {
-            return BindableListFactory.create_for(new KryptonListBoxListControl<TItemToBindTo>(listbox));
-        }
-
-        static public IBindableList<TItemToBindTo> create_for<TItemToBindTo>(this KryptonComboBox combobox)
-        {
-            return BindableListFactory.create_for(new KryptonComboBoxListControl<TItemToBindTo>(combobox));
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms.ThirdParty/Krypton/KryptonComboBoxListControl.cs
@@ -1,32 +0,0 @@
-using ComponentFactory.Krypton.Toolkit;
-using Gorilla.Commons.Windows.Forms.Helpers;
-
-namespace Gorilla.Commons.Windows.Forms.Krypton
-{
-    public class KryptonComboBoxListControl<TItemToStore> : IListControl<TItemToStore>
-    {
-        readonly KryptonComboBox combo_box;
-
-        public KryptonComboBoxListControl(KryptonComboBox combo_box)
-        {
-            this.combo_box = combo_box;
-        }
-
-        public TItemToStore get_selected_item()
-        {
-            return (TItemToStore) combo_box.SelectedItem;
-        }
-
-        public void add_item(TItemToStore item)
-        {
-            combo_box.Items.Add(item);
-            combo_box.SelectedIndex = 0;
-        }
-
-        public void set_selected_item(TItemToStore item)
-        {
-            if (!Equals(item, default(TItemToStore)))
-                if (combo_box.Items.Contains(item)) combo_box.SelectedItem = item;
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms.ThirdParty/Krypton/KryptonListBoxListControl.cs
@@ -1,30 +0,0 @@
-using ComponentFactory.Krypton.Toolkit;
-using Gorilla.Commons.Windows.Forms.Helpers;
-
-namespace Gorilla.Commons.Windows.Forms.Krypton
-{
-    public class KryptonListBoxListControl<TItemToStore> : IListControl<TItemToStore>
-    {
-        readonly KryptonListBox list_box;
-
-        public KryptonListBoxListControl(KryptonListBox list_box)
-        {
-            this.list_box = list_box;
-        }
-
-        public TItemToStore get_selected_item()
-        {
-            return (TItemToStore) list_box.SelectedItem;
-        }
-
-        public void add_item(TItemToStore item)
-        {
-            list_box.Items.Add(item);
-        }
-
-        public void set_selected_item(TItemToStore item)
-        {
-            if (list_box.Items.Contains(item)) list_box.SelectedItem = item;
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms.ThirdParty/Krypton/KryptonTextControl.cs
@@ -1,37 +0,0 @@
-using System;
-using ComponentFactory.Krypton.Toolkit;
-using Gorilla.Commons.Windows.Forms.Helpers;
-
-namespace Gorilla.Commons.Windows.Forms.Krypton
-{
-    public class KryptonTextControl<T> : ITextControl<T>
-    {
-        readonly KryptonTextBox textbox;
-        T bound_item;
-
-        public KryptonTextControl(KryptonTextBox textbox)
-        {
-            this.textbox = textbox;
-            when_text_is_changed = () => { };
-            textbox.TextChanged += (sender, args) => when_text_is_changed();
-        }
-
-        public void set_selected_item(T item)
-        {
-            textbox.Text = item.ToString();
-            bound_item = item;
-        }
-
-        public T get_selected_item()
-        {
-            return bound_item;
-        }
-
-        public string text()
-        {
-            return textbox.Text;
-        }
-
-        public Action when_text_is_changed { get; set; }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms.ThirdParty/Krypton/ListboxExtensions.cs
@@ -1,15 +0,0 @@
-using System.Collections.Generic;
-using ComponentFactory.Krypton.Toolkit;
-using Gorilla.Commons.Utility.Extensions;
-
-namespace Gorilla.Commons.Windows.Forms.Krypton
-{
-    static public class ListboxExtensions
-    {
-        static public void bind_to<T>(this KryptonComboBox control, IEnumerable<T> items)
-        {
-            control.Items.Clear();
-            items.each(x => control.Items.Add(x));
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms.ThirdParty/Krypton/TextBoxExtensions.cs
@@ -1,13 +0,0 @@
-using ComponentFactory.Krypton.Toolkit;
-using Gorilla.Commons.Windows.Forms.Helpers;
-
-namespace Gorilla.Commons.Windows.Forms.Krypton
-{
-    static public class TextBoxExtensions
-    {
-        static public ITextControl<T> text_control<T>(this KryptonTextBox textbox)
-        {
-            return new KryptonTextControl<T>(textbox);
-        }
-    }
-}
\ No newline at end of file
product/Gorilla.Commons.Windows.Forms.ThirdParty/Gorilla.Commons.Windows.Forms.ThirdParty.csproj
@@ -49,14 +49,6 @@
     <Reference Include="System.Data" />
     <Reference Include="System.Xml" />
   </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Krypton\BindableListExtensions.cs" />
-    <Compile Include="Krypton\KryptonComboBoxListControl.cs" />
-    <Compile Include="Krypton\KryptonListBoxListControl.cs" />
-    <Compile Include="Krypton\KryptonTextControl.cs" />
-    <Compile Include="Krypton\TextBoxExtensions.cs" />
-    <Compile Include="Krypton\ListboxExtensions.cs" />
-  </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Gorilla.Commons.Utility\Gorilla.Commons.Utility.csproj">
       <Project>{DD8FD29E-7424-415C-9BA3-7D9F6ECBA161}</Project>
solution.sln
@@ -7,10 +7,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gorilla.Commons.Infrastruct
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gorilla.Commons.Infrastructure.ThirdParty", "product\Gorilla.Commons.Infrastructure.ThirdParty\Gorilla.Commons.Infrastructure.ThirdParty.csproj", "{04DC09B4-5DF9-44A6-8DD1-05941F0D0228}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gorilla.Commons.Windows.Forms", "product\Gorilla.Commons.Windows.Forms\Gorilla.Commons.Windows.Forms.csproj", "{54B55B2B-A58F-45DF-A446-234C9D70DC0B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gorilla.Commons.Windows.Forms.ThirdParty", "product\Gorilla.Commons.Windows.Forms.ThirdParty\Gorilla.Commons.Windows.Forms.ThirdParty.csproj", "{8050731D-48B2-4636-9D1C-2B6D052F39DC}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gorilla.Commons.Build", "build\Gorilla.Commons.Build.csproj", "{B8505B10-85C7-45F4-B039-D364DD556D7D}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gorilla.Commons.Utility", "product\Gorilla.Commons.Utility\Gorilla.Commons.Utility.csproj", "{DD8FD29E-7424-415C-9BA3-7D9F6ECBA161}"
@@ -33,14 +29,6 @@ Global
 		{04DC09B4-5DF9-44A6-8DD1-05941F0D0228}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{04DC09B4-5DF9-44A6-8DD1-05941F0D0228}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{04DC09B4-5DF9-44A6-8DD1-05941F0D0228}.Release|Any CPU.Build.0 = Release|Any CPU
-		{54B55B2B-A58F-45DF-A446-234C9D70DC0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{54B55B2B-A58F-45DF-A446-234C9D70DC0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{54B55B2B-A58F-45DF-A446-234C9D70DC0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{54B55B2B-A58F-45DF-A446-234C9D70DC0B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{8050731D-48B2-4636-9D1C-2B6D052F39DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{8050731D-48B2-4636-9D1C-2B6D052F39DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{8050731D-48B2-4636-9D1C-2B6D052F39DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{8050731D-48B2-4636-9D1C-2B6D052F39DC}.Release|Any CPU.Build.0 = Release|Any CPU
 		{B8505B10-85C7-45F4-B039-D364DD556D7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B8505B10-85C7-45F4-B039-D364DD556D7D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B8505B10-85C7-45F4-B039-D364DD556D7D}.Release|Any CPU.ActiveCfg = Release|Any CPU