private void Initialize(RadDiagram diagram, ItemInformationAdorner informationAdorner, Popup rootPopup)
		{
			this.diagram = diagram;
			this.informationAdorner = informationAdorner;
			this.informationAdorner.IsAdditionalContentVisibleChanged += this.InformationAdorner_IsAdditionalContentVisibleChanged;
			this.rootPopup = rootPopup;

			this.dataProvider = new SettingsPaneDataProvider(this.diagram);
			this.dataProvider.BoundsChanged += (_, __) => this.PlacePopup();
		}
		internal void Reload(SettingsPaneDataProvider provider)
		{
			this.isInitializationInProgress = true;

			this.dataProvider = provider;

			this.OnPropertyChanged("IsGeneralTabEnabled");
			this.OnPropertyChanged("IsSizeTabEnabled");
			this.OnPropertyChanged("IsStyleTabEnabled");
			this.OnPropertyChanged("IsTextTabEnabled");
			this.OnPropertyChanged("IsInConnectionEditMode");
			this.OnPropertyChanged("IsInShapeEditMode");
			
			this.SelectAvailableSelectedTabIndex();
			
			//// Size
			this.CurrentWidth = this.dataProvider.ShapeBounds.Width;
			this.CurrentHeight = this.dataProvider.ShapeBounds.Height;
			this.CurrentPositionX = this.dataProvider.ShapeBounds.X;
			this.CurrentPositionY = this.dataProvider.ShapeBounds.Y;
			this.CurrentRotaionAngle = this.dataProvider.ShapeRotationAngle;

			//// Style
			this.CurrentSourceCapType = this.dataProvider.ConnectionSourceCapType;
			this.CurrentTargetCapType = this.dataProvider.ConnectionTargetCapType;
			this.CurrentStrokeThickness = this.dataProvider.ItemStrokeThickness;
			this.CurrentStrokeDashArray = this.dataProvider.ItemStrokeDashArray;
			this.CurrentSolidColorStyle = this.dataProvider.ItemColorStyle;
			this.CurrentGradientColorStyle = this.dataProvider.ItemColorStyle;

			//// Text
			this.currentLabelOriginalValue = this.dataProvider.ItemLabel;
			this.CurrentLabel = this.currentLabelOriginalValue;
			this.CurrentFontFamily = this.dataProvider.ItemFontFamily;
			this.CurrentFontSize = this.dataProvider.ItemFontSize;
			this.CurrentFontColor = this.dataProvider.ItemFontColor;

			this.isInitializationInProgress = false;
		}