Inheritance: BaseForm
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            IWindowsFormsEditorService svc =
                provider.GetService(typeof (IWindowsFormsEditorService)) as IWindowsFormsEditorService;
            if (svc != null)
            {
                Expectation expectation = value as Expectation;
                if (expectation != null)
                {
                    Window form = new Window();
                    ConditionTextChangeHandler handler = new ConditionTextChangeHandler(expectation);
                    form.setChangeHandler(handler);
                    GuiUtils.MdiWindow.AddChildWindow(form, DockAreas.Float);
                }
            }

            return value;
        }
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            IWindowsFormsEditorService svc =
                provider.GetService(typeof (IWindowsFormsEditorService)) as IWindowsFormsEditorService;
            if (svc != null)
            {
                IVariable variable = value as IVariable;
                if (variable != null)
                {
                    Window form = new Window();
                    form.AutoComplete = true;
                    VariableValueTextChangeHandler handler = new VariableValueTextChangeHandler(variable as ModelElement);
                    form.setChangeHandler(handler);
                    GuiUtils.MdiWindow.AddChildWindow(form, DockAreas.Float);
                }
            }

            return value;
        }
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            if (provider != null)
            {
                IWindowsFormsEditorService svc =
                    provider.GetService(typeof (IWindowsFormsEditorService)) as IWindowsFormsEditorService;
                if (svc != null)
                {
                    ITypedElement typedElement = value as ITypedElement;
                    if (typedElement != null)
                    {
                        Window form = new Window {AutoComplete = true, ConsiderOnlyTypes = true};
                        TypeTextChangeHandler handler = new TypeTextChangeHandler(typedElement as ModelElement);
                        form.setChangeHandler(handler);
                        GuiUtils.MdiWindow.AddChildWindow(form, DockAreas.Float);
                    }
                }
            }

            return value;
        }
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            if (provider != null)
            {
                IWindowsFormsEditorService svc =
                    provider.GetService(typeof (IWindowsFormsEditorService)) as IWindowsFormsEditorService;
                if (svc != null)
                {
                    ICommentable commentable = value as ICommentable;
                    if (commentable != null)
                    {
                        Window form = new Window {DockAreas = DockAreas.Float, AutoComplete = false};
                        CommentableTextChangeHandler handler = new CommentableTextChangeHandler(commentable as ModelElement);
                        form.setChangeHandler(handler);
                        GuiUtils.MdiWindow.AddChildWindow(form, DockAreas.Float);
                    }
                }
            }

            return value;
        }
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            if (provider != null)
            {
                IWindowsFormsEditorService svc =
                    provider.GetService(typeof (IWindowsFormsEditorService)) as IWindowsFormsEditorService;
                if (svc != null)
                {
                    IExpressionable expressionable = value as IExpressionable;
                    if (expressionable != null)
                    {
                        Window form = new Window();
                        ExpressionableTextChangeHandler handler =
                            new ExpressionableTextChangeHandler(expressionable as ModelElement);
                        form.setChangeHandler(handler);
                        GuiUtils.MdiWindow.AddChildWindow(form, DockAreas.Float);
                    }
                }
            }

            return value;
        }