PanelData CreatePanel(DocumentWindow document, object[] key, bool willSelected)
        {
            PanelData panel = new PanelData();

            panels.Add(panel);
            panel.selectedObjects = key;

            panel.CreateAndAddPanel(this);

            //hide
            if (!willSelected && panel.layoutPanel != null)
            {
                panel.layoutPanel.Visible = false;
                panel.layoutPanel.Enabled = false;
            }

            SettingsProvider.Create(document, panel.selectedObjects, panel.layoutPanel, null, true);

            return(panel);
        }
        PanelData CreatePanel(/*DocumentWindow documentWindow, */ object[] key, bool willSelected)
        {
            PanelData panel = new PanelData();

            panels.Add(panel);
            panel.selectedObjects = key;
            panel.CreateAndAddPanel(panelSettings);

            //hide
            if (!willSelected && panel.layoutPanel != null)
            {
                panel.layoutPanel.Visible = false;
                panel.layoutPanel.Enabled = false;
            }

            SettingsProvider.Create(this /*documentWindow*/, panel.selectedObjects, panel.layoutPanel, null, true);

            //!!!!!было
            ////init panel
            //if( panel.selectedObjects != null && panel.selectedObjects.Length != 0 )//!!!!так?
            //{
            //try
            //{
            //	//!!!!
            //	//!!!!может раньше
            //	//!!!!где еще такое
            //	layoutPanel.SuspendLayout();

            //	//!!!!!

            //	//if( clear )
            //	//	Clear();

            //	//UpdateBegin?.Invoke( this );
            //	//AllProviders_UpdateBegin?.Invoke( this );

            //	//OnUpdate();

            //	xx xx;

            //	{
            //		var header = new SettingsHeader_ObjectInfo();
            //		header.Anchor = AnchorStyles.Left | AnchorStyles.Right;
            //		layoutPanel.Controls.Add( header );
            //	}

            //	{
            //		var header = new SettingsHeader_Components();
            //		header.Anchor = AnchorStyles.Left | AnchorStyles.Right;
            //		layoutPanel.Controls.Add( header );

            //		//!!!!!

            //		////!!!!не так видать. надо не создавать совсем контрол
            //		//bool showComponents = false;

            //		//if( panel.selectedObjects.Length == 1 )
            //		//{
            //		//	var obj = panel.selectedObjects[ 0 ] as Component;
            //		//	if( obj != null && obj.ShowComponentsInSettings )
            //		//		showComponents = true;
            //		//}

            //		////!!!!!
            //		//if( !showComponents )
            //		//	header.Visible = false;
            //	}

            //	//!!!!
            //	//separator
            //	{
            //		var header = new GroupBox();
            //		header.Size = new Size( 20, 20 );
            //		header.Anchor = AnchorStyles.Left | AnchorStyles.Right;
            //		layoutPanel.Controls.Add( header );
            //	}

            //	{
            //		var window = new SettingsLevel2Window();
            //		window.Dock = DockStyle.Fill;
            //		layoutPanel.Controls.Add( window );
            //	}

            //	//select root of level 2
            //	//!!!!всегда Component? если нет, то и окна этого нет
            //	xx xx;
            //	if( panel.GetControl<SettingsHeader_Components>() != null )
            //		panel.GetControl<SettingsHeader_Components>().SelectObjects( new Component[] { (Component)panel.selectedObjects[ 0 ] } );

            //	//UpdateEnd?.Invoke( this );
            //	//AllProviders_UpdateEnd?.Invoke( this );

            //	//provider.PerformUpdate( false );
            //}
            //finally
            //{
            //	layoutPanel.ResumeLayout();
            //}
            //}

            return(panel);
        }