Beispiel #1
0
        private void CreateGridCells()
        {
            var rows = _collectionProperties["Rows"].Items.ToArray();

            PropertiesNodes.Clear();

            var rowsContainer = new GridPanelRowConstructor(rows);


            for (var i = 0; i < rowsContainer.GetRowCount(); i++)
            {
                Panels.Add(CreatePanel());
                //регистрируем строку грида в инспекторе объектов
                //создаем контейнер объектов
                RegisterGridPanelRowInInspector(i);
            }

            for (var i = 0; i < Panels.Count(); i++)
            {
                _memento.BeginUpdate();
                ObjectInspector.FocusedPropertiesNode = PropertiesNodes[i];

                var cells = rowsContainer.GetCells(i); //DesignerExtensions.GetCollection(rows[i], "Cells").ToList();

                //устанавливаем количество столбцов, соответствующее суммарном количеству столбцов в строке
                var columnSpan = cells.Select(s => Convert.ToInt32(s.ColumnSpan)).Cast <int>().ToList();

                //устанавливаем для строки количество столбцов
                Panels[i].SetColumnSpan(columnSpan);

                _memento.EndUpdate();
            }
        }
Beispiel #2
0
 public void Clear()
 {
     if (ObjectInspector != null)
     {
         foreach (var propertiesNode in PropertiesNodes)
         {
             ObjectInspector.DeleteNode(propertiesNode, true);
         }
     }
     PropertiesNodes.Clear();
     Panels.Clear();
     Controls.Clear();
 }
Beispiel #3
0
 public void ApplyCollections()
 {
     if (PropertiesNodes.Any())
     {
         if (MessageBox.Show("Attention! If proceed, all inner layout will be destroyed. Continue?",
                             "Confirm",
                             MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
         {
             return;
         }
     }
     Clear();
     CreateGridCells();
     AlignControls();
 }
Beispiel #4
0
        private void RegisterGridPanelRowInInspector(int i)
        {
            _memento.BeginUpdate();

            var propertyNode = new PropertiesNode(Panels[i])
            {
                ControlName        = ControlRepository.Instance(ObjectInspector).GetName("GridPanelRow"),
                EnabledLayoutTypes = new List <EnabledItems>(),
                //запрещено удалять ячейки строки
                OnRemoveChild = control => { return(false); }
            };

            PropertiesNodes.Add(propertyNode);

            ObjectInspector.AddNode(propertyNode);

            _memento.EndUpdate();
        }