public VisualStudioView()
        {
            var ToolbarHeight = "24px";


            var Content = new IHTMLDiv();

            this.Container = Content;
            this.Container.style.position = ScriptCoreLib.JavaScript.DOM.IStyle.PositionEnum.absolute;
            this.Container.style.width    = "100%";
            this.Container.style.height   = "100%";

            new TwentyTenWorkspace().ToBackground(Content.style, true);

            var EditorFrame = VisualStudioView.CreateEditor();

            var ToolbarContainerBackground = new IHTMLDiv().With(
                k =>
            {
                k.style.position = ScriptCoreLib.JavaScript.DOM.IStyle.PositionEnum.absolute;
                k.style.left     = "0px";
                k.style.right    = "0px";
                k.style.top      = "0px";
                k.style.height   = ToolbarHeight;

                k.style.backgroundColor = Color.White;
                //k.style.Opacity = 0.5;
            }
                ).AttachTo(Content);

            var ToolbarContainer = new IHTMLDiv().With(
                k =>
            {
                k.style.position = ScriptCoreLib.JavaScript.DOM.IStyle.PositionEnum.absolute;
                k.style.left     = "0px";
                k.style.right    = "0px";
                k.style.top      = "0px";
                k.style.height   = ToolbarHeight;
            }
                ).AttachTo(Content);

            var ToolbarContent = new IHTMLDiv().AttachTo(ToolbarContainer);

            ToolbarContent.style.position = ScriptCoreLib.JavaScript.DOM.IStyle.PositionEnum.relative;

            this.PriorityButtons         = new IHTMLSpan().AttachTo(ToolbarContent);
            this.ApplyToolbarButtonStyle =
                k =>
            {
                k.style.verticalAlign = "top";

                k.style.padding  = "0";
                k.style.margin   = "0";
                k.style.overflow = ScriptCoreLib.JavaScript.DOM.IStyle.OverflowEnum.hidden;
                k.style.SetSize(24, 24);

                VisualStudioView.ApplyMouseHoverStyle(k, Color.Transparent);
            };

            Func <IHTMLImage, IHTMLButton> AddButtonDummy =
                (img) =>
            {
                return(new IHTMLButton {
                    img.WithinContainer()
                }.With(k => ApplyToolbarButtonStyle(k)).AttachTo(ToolbarContent));
            };

            Func <IHTMLImage, Action, IHTMLButton> AddButtonAction =
                (img, command) =>
            {
                return(AddButtonDummy(img).With(
                           k =>
                {
                    k.onclick +=
                        delegate
                    {
                        command();
                    };
                }
                           ));
            };

            Func <IHTMLImage, string, IHTMLButton> AddButton =
                (img, command) =>
            {
                return(AddButtonAction(img, () =>
                                       EditorFrame.contentWindow.document.execCommand(
                                           command, false, null
                                           )
                                       ));
            };

            var RTAButtons = new Dictionary <string, IHTMLImage>
            {
                // http://trac.symfony-project.org/browser/plugins/dmCkEditorPlugin/web/js/ckeditor/_source/plugins?rev=27455

                { "Bold", new RTA_bold() },
                { "Underline", new RTA_underline() },
                { "Strikethrough", new RTA_strikethrough() },
                { "Italic", new RTA_italic() },
                { "JustifyLeft", new RTA_justifyleft() },
                { "JustifyCenter", new RTA_justifycenter() },
                { "JustifyRight", new RTA_justifyright() },
                { "JustifyFull", new RTA_justifyfull() },
                { "Indent", new RTA_indent() },
                { "Outdent", new RTA_outdent() },
                { "Superscript", new RTA_superscript() },
                { "Subscript", new RTA_sub() },
                { "Removeformat", new RTA_removeformat() },
                { "InsertOrderedList", new RTA_numberedlist() },
                { "InsertUnorderedList", new RTA_numberedlist() },
                { "undo", new RTA_undo() },
                { "redo", new RTA_redo() },
            }.ToDictionary(
                k => k.Key,
                k => AddButton(k.Value, k.Key)
                );

            var Workspace = new IHTMLDiv().With(
                div =>
            {
                div.style.position = ScriptCoreLib.JavaScript.DOM.IStyle.PositionEnum.absolute;
                div.style.left     = "6px";
                div.style.right    = "6px";
                div.style.bottom   = "6px";
                div.style.top      = "30px";
            }
                ).AttachTo(Content);

            var ToolboxSplit = new HorizontalSplit
            {
                Minimum = 0.05,
                Maximum = 0.5,
                Value   = 0.15,
            };

            Action <HorizontalSplit> ApplyStyle =
                t =>
            {
                t.Split.Splitter.style.backgroundColor = Color.None;
                t.SplitImageContainer.Orphanize();
                t.SplitArea.Target.style.borderLeft  = "0";
                t.SplitArea.Target.style.borderRight = "0";
                t.SplitArea.Target.style.width       = "6px";
                t.SplitArea.Target.style.Opacity     = 0.7;
                t.SelectionColor = JSColor.Black;
            };

            ToolboxSplit.With(ApplyStyle);

            var ToolboxContainer = ToolboxSplit.LeftContainer;

            ToolboxSplit.Split.Left.style.backgroundColor = Color.White;

            Action <string, string> AddGroup =
                (Header, Title) =>
            {
                #region group
                {
                    var s = new Section().ToSectionConcept();

                    s.Target.Header.style.marginLeft = "1em";
                    s.Header       = Header;
                    s.Header.title = Title;

                    s.Content.Clear();

                    CreateToolboxTo(s.Content);

                    s.IsExpanded = false;
                    s.Target.Container.AttachTo(ToolboxContainer);
                }
                #endregion
            };

            AddGroup("HTML", "For example a section or a split view");
            AddGroup("Flash Components", "For example an empty sprite or a visualization");
            AddGroup("Java Applets", "For example a calculator form or a visualization");
            AddGroup("General", "Snippets");

            var EditorTreeSplit = new HorizontalSplit
            {
                Minimum = 0.5,
                Maximum = 0.95,
                Value   = 0.6,
            };

            EditorTreeSplit.With(ApplyStyle);

            EditorTreeSplit.Split.Splitter.style.backgroundColor = Color.None;

            var EditorContainer = new IHTMLDiv {
                EditorFrame
            };

            EditorContainer.style.position        = ScriptCoreLib.JavaScript.DOM.IStyle.PositionEnum.absolute;
            EditorContainer.style.top             = "1.3em";
            EditorContainer.style.left            = "0px";
            EditorContainer.style.right           = "0px";
            EditorContainer.style.bottom          = "0.3em";
            EditorContainer.style.backgroundColor = Color.White;

            var DocumentsContainer = EditorContainer.WithinContainer();

            new IHTMLDiv().With(
                div =>
            {
                div.style.position = ScriptCoreLib.JavaScript.DOM.IStyle.PositionEnum.absolute;
                div.style.top      = "0px";
                div.style.height   = "1em";
                div.style.left     = "0px";
                div.style.right    = "0px";

                div.style.color = Color.White;

                div.Add("About.htm");
            }
                ).AttachTo(DocumentsContainer);

            new IHTMLDiv().With(
                div =>
            {
                div.style.position = ScriptCoreLib.JavaScript.DOM.IStyle.PositionEnum.absolute;
                div.style.top      = "1em";
                div.style.height   = "0.3em";
                div.style.left     = "0px";
                div.style.right    = "0px";

                div.style.backgroundColor = Color.FromRGB(255, 232, 166);
            }
                ).AttachTo(DocumentsContainer);

            new IHTMLDiv().With(
                div =>
            {
                div.style.position = ScriptCoreLib.JavaScript.DOM.IStyle.PositionEnum.absolute;
                div.style.bottom   = "0px";
                div.style.height   = "0.3em";
                div.style.left     = "0px";
                div.style.right    = "0px";

                div.style.backgroundColor = Color.FromRGB(255, 232, 166);
            }
                ).AttachTo(DocumentsContainer);


            EditorTreeSplit.Split.LeftScrollable = DocumentsContainer;
            EditorTreeSplit.Split.RightContainer = DemoTree().Container.WithinContainer().With(div => div.style.backgroundColor = Color.White);

            ToolboxSplit.Split.RightScrollable = EditorTreeSplit.Container;

            ToolboxSplit.Container.AttachTo(Workspace);
        }