public void Drop(IDropInfo dropInfo) { ZawartośćKlockaPionowegoZZawartością docelowaKolekcja = (ZawartośćKlockaPionowegoZZawartością)dropInfo.TargetCollection; KlocekPionowy upuszczanyKlocek = (KlocekPionowy)dropInfo.Data; upuszczanyKlocek.Rodzic = docelowaKolekcja.KlocekPionowyZZawartością; upuszczanyKlocek.ZPrzybornika = false; int indeksDocelowy = dropInfo.InsertIndex; IDragInfo informacjeOPrzeciągnięciu = dropInfo.DragInfo; ZawartośćKlockaPionowegoZZawartością źródło = informacjeOPrzeciągnięciu.SourceCollection as ZawartośćKlockaPionowegoZZawartością; ManipulacjaKlockiemPionowym manipulacja = new ManipulacjaKlockiemPionowym(ManipulacjeKlockiem.Dodanie, upuszczanyKlocek) { IndeksDocelowy = indeksDocelowy, Cel = docelowaKolekcja }; if (źródło != null) { manipulacja.IndeksŹródłowy = informacjeOPrzeciągnięciu.SourceIndex; manipulacja.Źródło = źródło; } docelowaKolekcja.Insert(indeksDocelowy, upuszczanyKlocek); _metodaZachowującaStanAplikacji(manipulacja); }
public WykonajJeżeli() : base(typeof(bool)) { AlternatywnaZawartość = new ZawartośćKlockaPionowegoZZawartością { KlocekPionowyZZawartością = this }; Kolor = Kolory.Logika; }
private void UsuńKlocekPionowy(object obiektKlocka) { KlocekPionowy usuwanyKlocek = (KlocekPionowy)obiektKlocka; KlocekPionowyZZawartością klocekPionowyZZawartością = usuwanyKlocek.Rodzic; if (klocekPionowyZZawartością != null) { ZawartośćKlockaPionowegoZZawartością miejsceUmieszczenia = klocekPionowyZZawartością.Zawartość; int indeks = miejsceUmieszczenia.IndexOf(usuwanyKlocek); if ((indeks == -1) && klocekPionowyZZawartością is WykonajJeżeli) { miejsceUmieszczenia = ((WykonajJeżeli)klocekPionowyZZawartością).AlternatywnaZawartość; indeks = miejsceUmieszczenia.IndexOf(usuwanyKlocek); } miejsceUmieszczenia.RemoveAt(indeks); DodajDziałanie(new ManipulacjaKlockiemPionowym(ManipulacjeKlockiem.Usunięcie, usuwanyKlocek) { IndeksDocelowy = indeks, Cel = miejsceUmieszczenia }); } }