private void checkData(ValueChangedEvent <ProjectElement> obj)
        {
            activeEditContainer.FadeTo(obj.NewValue == null ? 0 : 1);
            noSelectionContainer.FadeTo(obj.NewValue == null ? 1 : 0);

            nameTextBox.Current.UnbindEvents();
            sizeTextBoxX.Current.UnbindEvents();
            sizeTextBoxY.Current.UnbindEvents();
            descriptionTextBox.Current.UnbindEvents();

            if (obj.NewValue != null)
            {
                nameTextBox.Text        = obj.NewValue.Name.Value;
                descriptionTextBox.Text = obj.NewValue.Description.Value;
            }

            if (obj.NewValue is IHasSize size)
            {
                elementSize.Show();
                sizeTextBoxX.Text = size.Size.Value.X.ToString(CultureInfo.InvariantCulture);
                sizeTextBoxY.Text = size.Size.Value.Y.ToString(CultureInfo.InvariantCulture);
                sizeTextBoxX.Current.ValueChanged += sizeObj => size.Size.Value = new Vector2(float.Parse(string.IsNullOrEmpty(sizeObj.NewValue) ? sizeObj.OldValue : sizeObj.NewValue), size.Size.Value.Y);
                sizeTextBoxY.Current.ValueChanged += sizeObj => size.Size.Value = new Vector2(size.Size.Value.X, float.Parse(string.IsNullOrEmpty(sizeObj.NewValue) ? sizeObj.OldValue : sizeObj.NewValue));
            }
            else
            {
                elementSize.Hide();
            }

            if (obj.NewValue is Board board)
            {
                elementSubElements.Show();
                tilesManagerContainer.Filter = t =>
                {
                    return(board.Elements.Any(ti => ti.ID == t.ID));
                };
                tilesManagerContainer.ButtonAction = () =>
                {
                    board.Elements.Add(new Tile());
                    project.AddElement(board.Elements.Last());
                };
            }
            else
            {
                elementSubElements.Hide();
            }
            if (obj.NewValue != tileOverlay.SelectedTile)
            {
                tileOverlay.Hide();
            }
            descriptionTextBox.Current.ValueChanged += text => currentEditing.Value.Description.Value = text.NewValue;
            nameTextBox.Current.ValueChanged        += text => currentEditing.Value.Name.Value = text.NewValue;
        }
Beispiel #2
0
        private void checkData(ValueChangedEvent <ProjectElement> obj)
        {
            activeEditContainer.FadeTo(obj.NewValue == null ? 0 : 1);
            noSelectionContainer.FadeTo(obj.NewValue == null ? 1 : 0);

            unbindBindings(obj.OldValue);

            if (obj.NewValue != null)
            {
                nameTextBox.Text        = obj.NewValue.Name.Value;
                descriptionTextBox.Text = obj.NewValue.Description.Value;
            }

            if (obj.NewValue is IHasSize size)
            {
                elementSize.Show();
                elementSize.Current.Value = size.Size.Value;
                size.Size.BindTo(elementSize.Current);
            }
            else
            {
                elementSize.Hide();
            }

            if (obj.NewValue is IHasOrientation orientation)
            {
                elementOrientation.Show();
                elementOrientation.Current.Value = orientation.DefaultOrientation.Value;
                orientation.DefaultOrientation.BindTo(elementOrientation.Current);
            }
            else
            {
                elementOrientation.Hide();
            }

            if (obj.NewValue is IHasSideVisible sideVisible)
            {
                elementSideVisible.Show();
                elementSideVisible.Current.Value = sideVisible.DefaultSide.Value;
                sideVisible.DefaultSide.BindTo(elementSideVisible.Current);
            }
            else
            {
                elementSideVisible.Hide();
            }

            if (obj.NewValue is IHasPrivacy privacy)
            {
                elementPrivacy.Show();
                elementPrivacy.Current.Value = privacy.DefaultPrivacy.Value;
                privacy.DefaultPrivacy.BindTo(elementPrivacy.Current);
            }
            else
            {
                elementPrivacy.Hide();
            }

            if (obj.NewValue is IHasPosition position)
            {
                elementPosition.Show();
                elementPosition.Current.Value = position.Position.Value;
                position.Position.BindTo(elementPosition.Current);
            }
            else
            {
                elementPosition.Hide();
            }

            if (obj.NewValue is Board board)
            {
                elementSubElements.Show();
                tilesManagerContainer.Filter = t =>
                {
                    return(board.Elements.Any(ti => ti.ID == t.ID));
                };
                tilesManagerContainer.ButtonAction = () =>
                {
                    var toBeAdded = new Tile();
                    board.Elements.Add(toBeAdded);
                    toBeAdded.Parent = board;
                    project.AddElement(board.Elements.Last());
                };
            }
            else
            {
                elementSubElements.Hide();
            }

            if (obj.NewValue != tileOverlay.SelectedTile)
            {
                tileOverlay.Hide();
            }
        }