Exemple #1
0
        private void CloseButton_Click(object sender, RoutedEventArgs e)
        {
            RackCableManager.RemoveRack(this);
            ContainingPanel.Children.Remove(this);

            RackItem?.CleanUp();
        }
Exemple #2
0
        public RackItemContainer(RackCableManager rackCableManager, RackArrayWindow rackArray, IRackItem rackItem, MouseEventHandler mouseMovePreviewEventHandler)
        {
            InitializeComponent();

            var desc = DependencyPropertyDescriptor.FromProperty(AdditionalContentProperty, typeof(UserControl));

            desc.AddValueChanged(this, ContentPropertyChanged);

            RackCableManager = rackCableManager;
            RackCableManager.AddRack(this);

            ContainingPanel = rackArray.GetRackStackPanel();
            RackItem        = rackItem;
            ContainingPanel.Children.Add(this);
            AdditionalContent = rackItem;

            _dragItemEventHandler          = mouseMovePreviewEventHandler;
            InputsPanel.PreviewMouseMove  += RackItemMouseMoveForDragging;
            OutputsPanel.PreviewMouseMove += RackItemMouseMoveForDragging;
            InputsGrid.PreviewMouseMove   += RackItemMouseMoveForDragging;
            OutputsGrid.PreviewMouseMove  += RackItemMouseMoveForDragging;

            BackgroundGrid.MouseDown += BackgroundGridOnMouseDown;
        }
Exemple #3
0
        private void ContentPropertyChanged(object sender, EventArgs e)
        {
            var rack = sender as RackItemContainer;

            if (sender == null)
            {
                return;
            }

            var rackItem = rack?.AdditionalContent as IRackItem;

            if (rackItem == null)
            {
                return;
            }

            var userControl = rack.AdditionalContent as UserControl;

            if (userControl == null)
            {
                return;
            }

            ItemNameLabel.Content = rackItem.ItemName;
            ContentRow.Height     = new GridLength(double.IsNaN(userControl.Height) ? 0.0 : userControl.Height);

            foreach (var input in rackItem.GetInputs())
            {
                var inputSelector = new ComboBox();
                inputSelector.SelectionChanged += RackCableManager.InputSelectorSelectionChanged;
                inputSelector.Tag      = input;
                inputSelector.Margin   = new Thickness(1, 0, 5, 1);
                inputSelector.Width    = 100;
                inputSelector.FontSize = 10;
                inputSelector.HorizontalContentAlignment = HorizontalAlignment.Center;
                inputSelector.VerticalContentAlignment   = VerticalAlignment.Center;
                inputSelector.ItemsSource = RackCableManager.AllRackItemOutputs;
                _inputComboBoxs.Add(inputSelector);

                InputsPanel.Children.Add(inputSelector);
            }

            foreach (var output in rackItem.GetOutputs())
            {
                var outputTextBox = new TextBox
                {
                    Text       = output.VisibleName,
                    FontSize   = 10,
                    Width      = 100,
                    Margin     = new Thickness(1, 1, 5, 1),
                    Background = Brushes.Transparent,
                    HorizontalContentAlignment = HorizontalAlignment.Center,
                    VerticalContentAlignment   = VerticalAlignment.Center,
                    Tag = output
                };
                outputTextBox.TextChanged += RackCableManager.OutputTextBoxTextChanged;
                OutputsPanel.Children.Add(outputTextBox);
            }

            CloseButton.Visibility = rackItem.CanDelete() ? Visibility.Visible : Visibility.Hidden;

            rackItem.SetRack(this);
            RackCableManager.RackContentSet(this);
        }
Exemple #4
0
 public void OutputPipe(RackItemOutput output, List <byte> data)
 {
     RackCableManager.OutputPipe(output, data);
 }