コード例 #1
0
ファイル: Grid.razor.cs プロジェクト: pablopioli/MoonGrid
        public bool AddItem(TItem item, TItem afterItem)
        {
            var indexF = 0;

            if (afterItem != null)
            {
                indexF = Array.IndexOf(FixedData, afterItem);
                if (indexF == -1)
                {
                    return(false);
                }
            }

            var anchorItem = FixedData[indexF];

            var indexD = -1;

            for (int i = 0; i < Data.Count; i++)
            {
                if (ReferenceEquals(Data[i].Item, anchorItem))
                {
                    indexD = i;
                    break;
                }
            }

            if (indexD == -1)
            {
                return(false);
            }

            var displayableItem = new DisplayableItem <TItem>(item);

            if (afterItem != null)
            {
                FixedData = FixedData.Take(indexF + 1)
                            .Concat(new[] { item })
                            .Concat(FixedData.Skip(indexF + 1))
                            .ToArray();

                Data = Data.Take(indexD + 1)
                       .Concat(new[] { displayableItem })
                       .Concat(Data.Skip(indexD + 1))
                       .ToList();
            }
            else
            {
                FixedData = new[] { item }.Concat(FixedData).ToArray();

                Data = new[] { displayableItem }.Concat(Data).ToList();
            }

            StateHasChanged();

            return(true);
        }
コード例 #2
0
ファイル: Grid.razor.cs プロジェクト: pablopioli/MoonGrid
        public async Task <bool> RemoveItem(TItem item)
        {
            var indexD = -1;

            for (int i = 0; i < Data.Count; i++)
            {
                if (ReferenceEquals(Data[i].Item, item))
                {
                    indexD = i;
                    break;
                }
            }

            if (indexD == -1)
            {
                return(false);
            }

            var indexF = Array.IndexOf(FixedData, item);

            if (indexF != -1)
            {
                FixedData = FixedData.Take(indexF)
                            .Concat(FixedData.Skip(indexF + 1))
                            .ToArray();
            }

            Data = Data.Take(indexD)
                   .Concat(Data.Skip(indexD + 1))
                   .ToList();

            if (Data.Count == 0)
            {
                await Refresh();
            }

            StateHasChanged();

            return(true);
        }
コード例 #3
0
ファイル: DbTable.cs プロジェクト: janproch/datadmin
 private void SaveToXml(XmlElement xml, bool oldStyle)
 {
     SaveBase(xml);
     if (FullName != null)
     {
         FullName.SaveToXml(xml);
     }
     foreach (ColumnStructure col in Columns)
     {
         XmlElement cx = XmlTool.AddChild(xml, "Column");
         col.Save(cx);
     }
     if (oldStyle)
     {
         foreach (DatAdmin.Constraint cnt in Constraints)
         {
             cnt.Save(xml);
         }
     }
     else
     {
         foreach (DatAdmin.Constraint cnt in Constraints)
         {
             XmlElement cx = XmlTool.AddChild(xml, "Constraint");
             cnt.SaveToXml(cx);
         }
     }
     XmlTool.SaveParameters(xml, SpecificData);
     if (!String.IsNullOrEmpty(Comment))
     {
         xml.AddChild("Comment").InnerText = Comment;
     }
     if (FixedData != null)
     {
         FixedData.SaveToXml(xml.AddChild("FixedData"));
     }
 }
コード例 #4
0
 private static void InsertFixedData(FixedData fixedData)
 {
     FixedDatas.Add(fixedData.Key, fixedData);
 }